Firebase Realtime数据库:自动触发“值”事件

时间:2019-06-02 08:02:04

标签: javascript firebase-realtime-database dom-events

据我了解,以下这段代码由Javascript解释/执行

ref.on('value',callback)

(类似于document.addEventListener('click', callback))。回调将附加到该事件的el / object,以便在执行该事件时,将触发附加的回调(事件处理程序)。

但是我观察到,当ref上有一些数据时,即使没有诸如add /之类的触发器,上述代码行都由Javascript解释/执行时,firebase'value'事件也会自动触发删除/修改该引用所发生的操作。

此解释/假设是否正确,或者value事件的工作方式与从添加/删除/修改操作触发的其他任何事件一样。在那种情况下,那是什么触发器

,如果value事件自动触发,实际上会对该引用上的firebase数据库进行异步/网络调用,然后获取该数据(快照)是客户端的缓存数据,即没有异步/网络请求。

任何预算都可以澄清这两种混淆吗?感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

根据documentation

  

您可以使用value事件读取内容的静态快照   在事件发生时存在的给定路径上。 此方法   附加侦听器时触发一次,每次触发一次   数据(包括子项)发生了变化。事件回调传递给   快照,其中包含该位置的所有数据,包括子数据。   如果没有数据,则在调用时快照将返回false   存在(),当您在其上调用val()时为null。

附加侦听器后,SDK将使用其与数据库的持久连接来检查是否有新数据。如果没有任何新数据,那么将提供本地缓存的数据。