使用Firebase, observe 和 observeSingleEvent的區別

Firebase Realtime數據庫是一個NoSQL數據庫,可以用來存儲和檢索我們的應用程序的數據。數據存儲爲JSON,整個數據庫可以看作是一個巨大的JSON樹。數據寫在由相對路徑(關聯鍵)定義的特定位置,可以使用相同的路徑檢索。隨着數據被添加到JSON樹中,它將成爲現有JSON結構中的一個節點。

 

JSON樹

 

使用DatabaseReference的observe(_:with)或observeSingleEvent(of:with:)方法從數據庫中讀取數據。這兩個方法的區別在於,observe(_:with)將創建一個對象,該對象將連續偵聽事件類型。每當發生事件時,通常是對數據進行更改,事件回調將被觸發。使用observe(_: With),可以多次觸發事件回調。比如你

 

相比之下,observeSingleEvent(of:with:)只觸發一次事件回調。這對於讀取只需要加載一次且不希望之後更改的數據非常有用。

 

兩者監聽的with對象都相同,包括:

.childAdded (A new child node is added to a location) 監聽每新添的childe node

 .childChanged (A child node at a location changes)  監聽剛更改的childe node

.childMoved (A child node moves relative to the other child nodes at a loction)  監聽移動的childe node

.childRemoved (A child node is removed from a locatin)   監聽刪除的childe node

.value (Any data changes at a location or, recursively, at any child node) 監聽符合任何改變的childe node,這個最爲常用。

 

監聽的類型根據我們現在的View Controller想做的事去決定,比如現在開發一個社交聊天發動態軟件,如果當前的View Controller負責發動態,那麼監聽事件是以.childAdded爲主,如果是刪除動態的Controller, 同理,.childMoved優先考慮。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章