如何从Firebase参考中获取第一层上的孩子? (浅层查询)

时间:2018-03-22 18:55:47

标签: ios swift firebase firebase-realtime-database

我有一个Firebase数据库结构,如下所示:

/users
    - abc001
        - name: "Harry Watson"
        - credentials: 
            - email: "h.watson@yahoo.com"
    - abc002
        - name: "Jason Polakow"
            - credentials: 
                - email: "j.polakow_1@gmail.com"
    - abc003
        - name: "Madeleine Février"
        - credentials: 
            - email: "mad_fev@gmail.fr"
    - ...

我想让所有孩子都在第一层,例如:

- abc001
- abc002
- abc003
...
  • 我不知道该怎么做。据我所知,value事件也会触发每个孩子的每个孩子(第二层和第三层)。
  • childAdded事件也不是正确的选择,因为我只想接收一次数据(我不想听取数据更改/添加子项,......)。 />
  • 单个事件childAdded仅触发一次并返回第一个子项(abc001)。
你可以帮帮我吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您的数据结构无法做到这一点。 Firebase实时数据库没有"浅层查询"。当您收听某个位置时,您将始终获得所有嵌套数据。有no plans来改变这种情况。

您可以在数据库中创建一个仅包含您要查找的数据的新位置。在NoSQL数据库中复制这样的数据是很常见的。你必须记住,只要其中一个副本需要更改,就可以保持所有副本的最新状态。