从iOS

时间:2017-04-19 13:17:42

标签: ios swift firebase firebase-realtime-database

在我的应用中,我在更改节点时从Firebase获取数据:

handle = ref?.child("orders").child("4").observe(.childChanged, with: { (snapshot) in          
    if snapshot.key == "price" {
        print("price: \(snapshot.value)")
    }
    if snapshot.key == "orders" {
        print("orders: \(snapshot.value)")
    }                                 
}, withCancel: nil)

但上述功能真的是这样做的吗?

我试图设置一个if语句来检查返回的是什么值,然后从snapshot.value获取该值,但我担心如果我立即更改所有值,我无法判断哪个节点{{ 1}}来自。

1 个答案:

答案 0 :(得分:2)

是的,用于跟踪子节点更改,这是实现目标的方式!

Firebase文档,针对相应的childChanges数据库事件,提供了更多详细信息:

  

收听列表中项目的更改。每次修改子节点时都会触发此事件。这包括对子节点后代的任何修改。传递给事件侦听器的FIRDataSnapshot包含子级的更新数据。

因此,snapshot.key标识更新的子节点并snapshot.value标识相应的数据。