如何在不知道路径的情况下从Firebase获取所有子数据

时间:2019-06-18 00:44:41

标签: swift firebase firebase-realtime-database

我的数据结构如下:

Data structure

我希望能够访问每个用户列表,使所有列表组成一个数组,但是我不知道每个用户的ID或列表ID,所以我不能这样做: Database.database().reference.child("users").child(uid)......,因为它不仅用于一个UID。从firebase提取时是否有办法“跳过” .child(uid).child(listingID)

1 个答案:

答案 0 :(得分:1)

如果要检索所有用户的所有数据,则可以将观察者附加到整个/users节点。这将为您提供完成处理程序中所有数据的快照,然后您可以循环访问该快照的子级以获取每个单独的用户。

类似这样的东西:

ref.observeSingleEvent(of: .value) { snapshot in
    for case let user as FIRDataSnapshot in snapshot.children {
        print(user.childSnapshot(forPath: "email").value)
    }
}

您可以使用类似的循环进一步深入了解快照的数据,并更多地调用childSnapshot(forPath:以查找特定属性。

还可以看到我一个小时前给出的答案hereHow do I loop all Firebase children at once in the same loop?Looping in Firebase