如何在没有引用该键的情况下搜索firebase中的特定键

时间:2017-08-07 15:58:03

标签: ios swift firebase firebase-realtime-database

我的数据库结构如下所示:

Structure

我的引用初始化如下:

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,而不引用特定路径。

1 个答案:

答案 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