使用 id 列表的 Firebase 查询 (iOS)

Abb*_*ese 6 ios firebase swift geofire

我有一个NSArray包含多个 ID。有没有办法Firebase可以获取数组中带有 id 的所有对象?

我正在构建一个餐厅评级应用程序,用于GeoFire检索附近的餐厅。我的问题是GeoFire只返回附近餐厅的 id 列表。有什么办法可以查询所有带有 id 的对象吗?

Pau*_*tos 4

不,您无法像 Firebase 中那样执行批量查询。

您将需要循环遍历您的餐厅 ID 并使用 查询每个餐厅 ID observeSingleEvent。例如:

let restaurantIDs: NSArray = ...
let db = FIRDatabase.database().reference()
for id in restaurantIDs as! [String] {
    db.child("Restaurants").child(id).observeSingleEvent(of: .value) {
        (snapshot) in
        let restaurant = snapshot.value as! [String: Any]
        // Process restaurant...
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您担心性能,Firebase也许能够对所有这些observeSingleEvent调用进行分组并将它们批量发送到服务器,这毕竟可以回答您原来的问题;-)