ios - Firebase 在 FIRDataEventTypeChildChanged 上发送整个数据库而不是更改的数据

标签 ios swift firebase firebase-realtime-database

我希望能够监听 Firebase 数据库中任何子项所做的任何更改。我执行以下操作(在 viewDidLoad 中),它向我发送整个数据库,而不是仅向我发送已更改的子节点。

var ref : FIRDatabaseReference!
self.ref.observe(.childChanged, with: {(snapshot) in
                print(snapshot)
            })

积极的是,每次更改数据库值时都会调用它。但不利的是,它不是只发送受影响的节点,而是返回所有具有更新节点的节点,这不是我想要的。 我是在调用正确的监听器还是这是意外行为?

最佳答案

这是预期的行为:如果您在特定节点上注册一个值观察器,则只要有更改,该节点的值就会触发该 block 。

如果您想了解 JSON 树中较低级别的更改,您应该在树中的该级别添加观察者。

关于ios - Firebase 在 FIRDataEventTypeChildChanged 上发送整个数据库而不是更改的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41078596/

相关文章:

android - 没有 Activity 设备时的 Firebase 带宽使用情况

ios - NSMetadataQuery 按文件夹 iOS

iphone - Xcode 调试器(适用于 iPhone)中的 "out of scope"是什么意思?

xcode - 找到 X 轴的中间以放置标签 Swift Xcode 6

swift - 锁定/解锁 UIView 动画完成 block 中代码的关键部分 - Swift

javascript - Firebase "throw new Error(' 提供的服务帐户无效');"错误消息

ios - iOS 推送通知是否需要苹果开发者计划成员(member)资格

ios - 如何从MKStoreKit获取transactionID和收据?

Xcode/Swift - 多个 View Controller 中的元素

node.js - Firebase Angular 4 基于 Node 环境初始化