簡體   English   中英

從 Firebase 數據快照中提取數據

[英]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的每個子屬性,這就是您看到latitudelongitude日志的原因。

一旦問題提供了必要的信息,就會更新更多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM