Firebase Realtime數據庫是一個NoSQL數據庫,可以用來存儲和檢索我們的應用程序的數據。數據存儲爲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優先考慮。