【问题标题】:Can someone clearly explain difference between .Value, .ChildAdded, .ChildChanged, .ChildRemoved for FIRDataEventType?有人可以清楚地解释 FIRDataEventType 的 .Value、.ChildAdded、.ChildChanged、.ChildRemoved 之间的区别吗?
【发布时间】:2016-06-21 19:25:23
【问题描述】:

我很难用语言表达。有人能解释一下不同 FIRDataEventTypes 之间的区别以及何时使用它的示例吗?

示例(SWIFT):

let queryRef = FIRDatabase.database().reference().child("user")
queryRef.observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in

queryRef.observeEventType(.Value, withBlock: { (snapshot) -> Void in

根据测试,.Value 返回一个对象,而 .ChildAdded 返回多个;进行高级查询时 .ChildAdded 不起作用,但 .Value 有点起作用(更深的孩子为空)。

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database


    【解决方案1】:

    tl;dr - Watch this video. It uses the old SDK in Android, but the idea is the exact same even for iOS.

    这些事件中的每一个都是处理跨客户端数据同步的特定方式。

    每次更新任何数据时都会触发Value 事件。这可能是新添加的键、键的删除或引用处任何值的更新。 发生更改时,SDK 会发回对象的整个状态,而不是刚刚发生的增量更改。

    添加孩子的事件将针对现有数据触发一次,snapshot 值将是一条单独的记录,而不是像您通过 value 事件获得的整个列表。随着越来越多的项目进入,这个事件将随着每个项目触发。

    删除和更改子事件的工作方式几乎相同。当一个项目被删除或它的值发生变化时,单个项目会在回调中返回。

    【讨论】:

    • 该死的,视频里的那个人是苍蝇。谢谢。
    • .childChanged 事件是否包含 .childAdded 事件?如果没有,我可以将这两个事件的数组传递给 Swift 中的同一个观察者吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2016-10-10
    • 2019-05-14
    • 1970-01-01
    • 2013-12-04
    • 2010-10-02
    相关资源
    最近更新 更多