在我的应用程序中,当节点发生更改时,我从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/