簡體   English   中英

從Android中的Firebase實時數據庫獲取數據

[英]Get data from firebase realtime database in android

我正在嘗試從Android中的Firebase實時數據庫獲取數據。 我創建了一個json數據文件,並將該json文件導入了Firebase數據庫中。 數據文件如下所示:

{
    "data": [
        {
        "name" : "one",
        "age" : "ten"
        },{
        "name" : "two",
        "age" : "twenty"
        }
    ]
}

我創建了一個POJO類。 現在如何從數組中獲取所有json對象? 我搜索了一段時間,但無法理解這里的參考和孩子。

當您說val fireDataBaseRef FirebaseDatabase.getInstance().reference.child("data")您持有的是根樹的引用。 使用此參考,您可以fireDataBaseRef.addChildEventListener(childEventListener)

哪里

val childEventListener: ChildEventListener = object : ChildEventListener {

        override fun onCancelled(snapshot: DatabaseError?) {}

        override fun onChildMoved(snapshot: DataSnapshot?, p1: String?) {}

        override fun onChildChanged(snapshot: DataSnapshot?, p1: String?) {

        }

        override fun onChildAdded(snapshot: DataSnapshot?, p1: String?) {
            // childs added
        }

        override fun onChildRemoved(snapshot: DataSnapshot?) {

        }
    }

只需將一些日志放入覆蓋的函數中,您就會看到該操作

我建議更改您的Firebase結構,如下所示:

  • 如Firebase建議使用此做法將{]替換為{}
  • 為您在data節點中擁有的每個用戶(或項目)添加特定的唯一ID。

舉個例子:

在此處輸入圖片說明

如您在圖片中看到的,每個用戶都有一個特定的ID。 Firebase為每個用戶提供一個唯一的ID,您可以使用String userId= user.getUid();獲得該ID String userId= user.getUid();

您還可以創建唯一的id,並使用String key = Database.child("users").push().getKey();來獲取它們String key = Database.child("users").push().getKey(); (不建議用於用戶標識)

如果你想讀數據時,你的結構,我建議閱讀

還請閱讀此內容

暫無
暫無

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

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