在我的应用中,我在更改节点时从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}}来自。
答案 0 :(得分:2)
是的,用于跟踪子节点更改,这是实现目标的方式!
Firebase文档,针对相应的childChanges
数据库事件,提供了更多详细信息:
收听列表中项目的更改。每次修改子节点时都会触发此事件。这包括对子节点后代的任何修改。传递给事件侦听器的
FIRDataSnapshot
包含子级的更新数据。
因此,snapshot.key
标识更新的子节点并snapshot.value
标识相应的数据。