从 android 中的 firebase 实时数据库获取数据

Get data from firebase realtime database in android

我正在尝试从 android 中的 firebase 实时数据库获取数据。我创建了一个 json 数据文件并在 firebase 数据库中导入了 json 文件。数据文件如下所示:

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

我创建了一个 POJO class。现在如何从数组中获取所有 json objects ?我已经搜索了一段时间,但无法理解这里的参考 & child。

当您说 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

您也可以创建唯一 ID 并使用 String key = Database.child("users").push().getKey(); 获取它们(不建议用于用户 ID)

如果您想阅读您构建的数据,我建议您阅读 this

另请阅读this