使用Firebase, observe 和 observeSingleEvent的区别

12 篇文章 0 订阅
1 篇文章 0 订阅

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值