Ios 如何从Firebase引用获取第一层上的子级?(浅层查询)
我有一个Firebase数据库结构,如下所示:Ios 如何从Firebase引用获取第一层上的子级?(浅层查询),ios,swift,firebase,firebase-realtime-database,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_
/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
...
- 我不知道怎么做。据我所知,
事件也会为每个子级(第二层和第三层)的每个子级触发值
事件也不是正确的选择,因为我只想接收一次数据(我不想监听数据更改/childAdded…。childAdded
的单个事件只触发一次并返回第一个子事件(childAdded
)李>abc001
提前感谢。这在您的数据结构中是不可能的。Firebase实时数据库没有“浅层查询”。当你监听一个位置时,你会一直得到它的所有嵌套数据。有很多方法可以改变这一点
您可以在数据库中创建一个新位置,其中只包含您正在查找的数据。在NoSQL数据库中,像这样复制数据是很常见的。您只需记住,在任何时候需要更改其中一个副本时,都要使所有副本保持最新状态。但是否可以获取包含用户信息的所有密钥(
abc001
,…)?我的问题是,我只想获取一次数据,不管我是否获得所有凭据,等等。我不确定你在问什么。这听起来和你最初问的有些不同?在我的回答中,我说不可能只得到那些键而不得到其他任何东西,因为查询不是肤浅的。如果向/users
添加观察者,则每次都将获得该位置下的所有数据。@T.Meyer snapshot.value将代表“users”节点下的整个树,并由您编写代码遍历该树。请注意,获取这样一个完整的树可能不是很有效,但这正是您所要求的!:-)@AndréKool这有点超出了范围,因为OP是专门谈论swift的。由于技术原因,移动客户端库不支持此功能。