使用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优先考虑。

 

 

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