在我的应用程序中,当节点发生更改时,我从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获取该值,但是我担心是否一次更改了所有值就无法分辨snapshot.value来自哪个节点。

最佳答案

是的,这样做是为了跟踪子节点的更改!

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

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

这样,snapshot.key标识更新的子节点,snapshot.value标识相应的数据。

关于ios - 从Firebase数据库事件childChanged返回的快照在iOS上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43496922/

10-14 19:58