我的数据库结构如下所示:
我的引用初始化如下:
let databaseRef = FIRDatabase.database().reference().child("Butikker")
当我在viewdidload中运行此函数时,我的控制台会输出:nil nil
func fetchNearByPlaces() {
databaseRef.observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
print(dictionary["Longtitude"], dictionary["Latitude"])
}
})
我想打印具有键的所有值:Longtitude和Latitude,而不引用特定路径。
答案 0 :(得分:1)
当通过.childAdded观察Firebase中的节点时,它会一次返回一个节点,并且可以直接访问快照子节点。
但是,当通过.value观察时,快照包含父节点和所有子节点。在这种情况下,要获取每个子节点,请迭代快照,如下所示:
let databaseRef = self.ref.child("Butikker")
databaseRef.observeSingleEvent(of: .value, with: { (snapshot) in
for child in snapshot.children {
let snap = child as! DataSnapshot
let dictionary = snap.value as! [String: Any]
print(dictionary["Longitude"], dictionary["Latitude"])
}
})
另外,在Firebase 4中,而不是FIRDataEventType.value,只需使用.value