【问题标题】:Firebase Kotlin Reference more than one childFirebase Kotlin 参考不止一个孩子
【发布时间】:2019-05-08 23:48:55
【问题描述】:

我在使用 Kotlin 的 Android 应用程序中使用 Firebase 实时数据库。

我的 JSON 格式如下。

    {
  "main1": {
    "branch1": [
      {
        "a": "Test1",
        "b": "Test2"
      },
      {
        "a": "Test3",
        "b": "Test4"
      }
    ],
    "branch2": [
      {
        "a": "Test5",
        "b": "Test6"
      },
      {
        "a": "Test7",
        "b": "Test8"
      }
    ]
  }
}

我想获得多个孩子的结果并将它们显示在 Recycler 视图中。

目前我只能使用以下代码填充一个孩子。

FirebaseDatabase.getInstance().getReference().child("main1").child("branch1")

但我无法找到一个查询来获取 branch1 和 branch2 的组合结果。我也可以使用带有 branch3 和 branch4 的 main2。

我怎样才能将它们作为单个输出让多个孩子显示在 RecyclerView 上。

【问题讨论】:

    标签: android firebase firebase-realtime-database kotlin android-recyclerview


    【解决方案1】:

    您无法一次执行查询并获取所有这些对象。但是,有一种解决方法,您可以通过减少子项的数量对数据库结构进行一些更改。所以请检查以下架构:

    {
      "main1": {
          {
            "a": "Test1",
            "b": "Test2",
            "branch1": true
          },
          {
            "a": "Test3",
            "b": "Test4"
            "branch1": true
          },
          {
            "a": "Test5",
            "b": "Test6"
            "branch2": true
          },
          {
            "a": "Test7",
            "b": "Test8"
            "branch2": true
          }
      }
    }
    

    如果要获取所有对象,只需使用以下参考:

    FirebaseDatabase.getInstance().getReference().child("main1");
    

    如果您想获取branch1 类型的所有对象,请使用以下查询:

    FirebaseDatabase.getInstance().getReference().child("main1")
        .orderByChild("branch1")
        .equalTo(true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多