有人可以清楚地解释 FIRDataEventType 的 .Value、.ChildAdded、.ChildChanged、.ChildRemoved 之间的区别吗?
Can someone clearly explain difference between .Value, .ChildAdded, .ChildChanged, .ChildRemoved for FIRDataEventType?
我无法用语言表达。有人可以解释不同的 FIRDataEventType 之间的区别以及何时使用它的示例吗?
示例 (SWIFT):
let queryRef = FIRDatabase.database().reference().child("user")
queryRef.observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
或
queryRef.observeEventType(.Value, withBlock: { (snapshot) -> Void in
根据测试,.Value returns 一个 object 而 .ChildAdded returns 多个;在进行高级查询时,.ChildAdded 不起作用,但 .Value 有点起作用(更深的 children 为空)。
这些事件中的每一个都是处理客户端间数据同步的特定方式。
Value 事件 将在每次更新任何数据时触发。这可能是新添加的键、键的删除或引用中任何值的更新。 当发生变化时,SDK 发回 object 的整个状态,而不是刚刚发生变化的增量。
Child 添加的事件 将针对每个现有数据触发一次,snapshot
值将是单个记录而不是整个列表就像您在 value 事件 中得到的一样。随着更多项目的加入,此事件将随每个项目一起触发。
Child 删除和更改的事件 工作几乎相同。当一个项目被删除或改变它的值时,回调中返回单个项目。
我无法用语言表达。有人可以解释不同的 FIRDataEventType 之间的区别以及何时使用它的示例吗?
示例 (SWIFT):
let queryRef = FIRDatabase.database().reference().child("user")
queryRef.observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
或
queryRef.observeEventType(.Value, withBlock: { (snapshot) -> Void in
根据测试,.Value returns 一个 object 而 .ChildAdded returns 多个;在进行高级查询时,.ChildAdded 不起作用,但 .Value 有点起作用(更深的 children 为空)。
这些事件中的每一个都是处理客户端间数据同步的特定方式。
Value 事件 将在每次更新任何数据时触发。这可能是新添加的键、键的删除或引用中任何值的更新。 当发生变化时,SDK 发回 object 的整个状态,而不是刚刚发生变化的增量。
Child 添加的事件 将针对每个现有数据触发一次,snapshot
值将是单个记录而不是整个列表就像您在 value 事件 中得到的一样。随着更多项目的加入,此事件将随每个项目一起触发。
Child 删除和更改的事件 工作几乎相同。当一个项目被删除或改变它的值时,回调中返回单个项目。