我的实时数据库(火力地堡)中有不同城市的地方。
以下是我的数据库结构。
但是根据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
重复相同的操作。但是还有更好的方法吗?
答案 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