Swift 如何在不知道路径的情况下从firebase获取所有子数据
我的数据结构如下所示:Swift 如何在不知道路径的情况下从firebase获取所有子数据,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我的数据结构如下所示: ref.observeSingleEvent(of: .value) { snapshot in for case let user as FIRDataSnapshot in snapshot.children { print(user.childSnapshot(forPath: "email").value) } } 我希望能够访问每个用户的列表,以创建所有列表的数组,但我不知道每个用户ID或列表ID,因此我无法执行以下操作: D
ref.observeSingleEvent(of: .value) { snapshot in
for case let user as FIRDataSnapshot in snapshot.children {
print(user.childSnapshot(forPath: "email").value)
}
}
我希望能够访问每个用户的列表,以创建所有列表的数组,但我不知道每个用户ID或列表ID,因此我无法执行以下操作:
Database.Database().reference.child(“用户”).child(uid)…
,因为它不仅仅针对一个uid。如果从firebase中提取时有方法“跳过”.child(uid)
和.child(listingID)
?如果要检索所有用户的所有数据,可以将观察者连接到整个/users
节点。这将为您提供完成处理程序中所有数据的快照,然后您可以循环该快照的子项以获取每个用户
大概是这样的:
ref.observeSingleEvent(of: .value) { snapshot in
for case let user as FIRDataSnapshot in snapshot.children {
print(user.childSnapshot(forPath: "email").value)
}
}
您可以使用类似的循环进一步深入快照的数据,并更多地调用childSnapshot(forPath
:以查找特定属性
另请参见我一小时前给出的答案和Database.Database().reference.observe(DataEventType.value){(snapshot)in if snapshot.childrenCount>0{对于snapshot.children.allObjects中的项目,将其作为![DataSnapshot]{let object=items.value as![String:AnyObject]let email=object[“email”]as!String}}谢谢,弗兰克,这正是我想要的