[英]Extracting data from Firebase data snapshot
我正在尝试从 firebase 的 DataSnapshot 中获取数据。我可以在日志中看到 DataSnapShot,但在将其分配给变量时出现错误。 请参阅下面的更多细节
在日志中:
D/loggxxxxxxxxxxxxxxxxx: DataSnapshot { key = 纬度, value = -20.0688881 }
D/loggxxxxxxxxxxxxxxxxx: DataSnapshot { key = longitude, value = 57.5226424 }
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot.exists()){
Log.d("loggxxxxxxxxxxxxxxxxx",dataSnapshot.toString());
Toast.makeText(MapsActivity.this, dataSnapshot.toString(), Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(MapsActivity.this, "Nodata", Toast.LENGTH_SHORT).show();
}
我的 Firebase 实时数据库如下所示:
"location": {
"HarryMaguire": {
"latitude": "-20.0688881",
"longitude": "57.5226424"
},
"RoseGilbert": {
"latitude": "20.3484",
"longitude": "57.5522"
},
这是我从 firebase 数据库中提取数据的方法。 我认为您在数据提取方面遇到问题。 还有这个 kotlin
fun getDataFromFirestore() {
val userID = sharedPreferences.getString("Firma_Firebase_ID", "")
if (userID != "") {
val DB = Firebase.firestore
DB.collection("Database").document(userID.toString()).addSnapshotListener{ snapshot, error ->
val document = snapshot?.data
runBlocking {
launch {
if (snapshot != null && document != null) {
val name = document.get("name") as? String
if (name != null) {
Name = name
}
}
}
}
//Notify
}
}
}
看起来您正在将ChildEventListener
附加到数据库中的location/HarryMaguire
路径。 当您这样做时, onChildAdded
会触发location/HarryMaguire
的每个子属性,这就是您看到latitude
和longitude
日志的原因。
一旦问题提供了必要的信息,就会更新更多。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.