2016-06-21 36 views
2

我很難把它放入單詞中。有人可以解釋什麼是不同的FIRDataEventTypes和什麼時候使用它的例子之間的區別?有人可以清楚地解釋FIRDataEventType的.Value,.ChildAdded,.ChildChanged,.ChildRemoved之間的區別嗎?

實施例(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有些作用(更深的子元素爲空)。

回答

9

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

這些事件中的每一個是處理跨客戶端數據同步的具體方式。

值事件將在每次更新任何一條數據時觸發。這可能是新添加的密鑰,刪除密鑰或更新引用中的任何值。 當發生更改時,SDK將發回對象的整個狀態,而不是發生的更改。

兒童添加的事件將火過一次,每一塊的現有數據,該snapshot值將是一個單獨的記錄,而不是整個列表像你將與值事件得到。隨着更多項目進入,此事件將隨每個項目一起啓動。

子刪除和更改事件工作幾乎相同。當一個項目被刪除或其值已更改時,單個項目將在回叫中返回。

+2

該死的,那個在視頻裏的傢伙是飛的。謝謝。 – gooberboobbutt

相關問題