有人可以清楚地解释.Value,.ChildAdded,.ChildChanged,.ChildRemoved for FIRDataEventType之间的区别吗?

goo*_*utt 2 ios firebase swift firebase-realtime-database

我无法用语言表达.有人可以解释不同FIRDataEventTypes之间的区别以及何时使用它们的示例?

示例(SWIFT):

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

要么

queryRef.observeEventType(.Value, withBlock: { (snapshot) -> Void in
Run Code Online (Sandbox Code Playgroud)

从测试开始,.Value返回一个对象,而.ChildAdded返回多个; 在进行高级查询时.ChildAdded不起作用,但.Value有些工作(更深的子节点为空).

Dav*_*ast 10

tl; dr - 观看此视频.它使用Android中的旧SDK,但即使对于iOS,这个想法也完全相同.

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

数据事件将每个任何数据被更新时触发.这可以是新添加的密钥,删除密钥或更新引用的任何值.当更改发生时,SDK会发回对象的整个状态,而不是仅发生更改的delta.

儿童添加的事件将触发一次关闭现有的每一块数据,该snapshot值将是一个单独的记录,而不是整个列表像你将与获取数据事件.随着更多物品的进入,此活动将随每件物品开启.

儿童删除,改变了事件的工作几乎是相同的.删除项目或更改其值时,将在回调中返回单个项目.

  • 该死的,视频中的那个人是飞的.谢谢. (2认同)