如何同时从不同的DatabaseReference检索数据

时间:2018-12-28 03:03:59

标签: ios swift firebase-realtime-database

我的实时数据库(火力地堡)中有不同城市的地方。

以下是我的数据库结构。

Database Structure

但是根据firebase教程,我尝试使用以下代码获取数据

cityA.queryOrdered(byChild: "completed").observe(.value, with: { snapShot in
            var newItems: [AttractionPlace] = []
            for child in snapShot.children {
                if let snapShot = child as? DataSnapshot,
                    let attraction = AttractionPlace(snapShot: snapShot) {
                        newItems.append(attraction)
                }
            }
            print(newItems.count)
        })

我也想在同一时间从cityB获取数据,不知道如何获取。我知道我可以对cityB重复相同的操作。但是还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我不确定您希望如何组织数据。您能告诉我AttractionPlace的样子吗?下面的代码可以完成您想要将每个地点的名称附加到newItems的操作,但是没有指定它来自哪个城市。请注意,我没有使用您的AttractionPlace对象。

let dataref = Database.database().reference()
dataref.child("attractions").observe(.value, with: { (snapshot) in
    var newItems = [AnyObject]()
    for city in snapshot.children.allObjects as! [DataSnapshot] {
        let value = city.value as? NSDictionary ?? [:]
        for child in value {
            let attraction = child.value
            newItems.append(attraction as AnyObject)
        }
    }
    print("newItems: ",newItems)
    print("newItems.count: ",newItems.count)
})

结果:

newItems:  [Place 3, Place 4, Place 1, Place 2]
newItems.count:  4