Firebase 观察者实际上做了啥?
Posted
技术标签:
【中文标题】Firebase 观察者实际上做了啥?【英文标题】:What does a Firebase observer actually do?Firebase 观察者实际上做了什么? 【发布时间】:2017-03-16 19:49:03 【问题描述】:假设这个观察者是在应用启动时创建的
ref.observe(.value, with: (snapshot) in
// do something
)
幕后发生了什么?应用程序如何知道值何时发生变化?我能想象的就是这个
while (true)
ref.observeSingleEvent(of: .value, with: (snapshot) in
// if value is different do something
)
【问题讨论】:
你如何定义“成本”,如果函数从未被调用,为什么还要包含它?您可能想用一个用例和更多数据(代码)来扩展您的问题,否则它可能会因为含糊不清而被关闭。 感谢杰伊的评论。我想知道 Firebase 观察者是如何工作的。观察函数背后的代码是什么? 【参考方案1】:Firebase 客户端与其后端服务器保持打开的套接字连接。当您附加观察者时,它会将该信息发送到服务器,然后服务器将跟踪观察到的位置。服务器还发回该位置的当前值(或缺少的值)。客户端将立即使用该值触发/调用您的完成块。
在此初始流程之后,只要位置的值发生更改,Firebase 服务器就会通过打开的套接字向客户端发送更新。当客户端收到这样的更新时,它会使用更新的值(或缺少更新的值)再次调用完成块。
【讨论】:
以上是关于Firebase 观察者实际上做了啥?的主要内容,如果未能解决你的问题,请参考以下文章
在firebase中如何删除所有观察者,而不是特定参考的观察者