据我了解,以下这段代码由Javascript解释/执行
ref.on('value',callback)
(类似于document.addEventListener('click', callback)
)。回调将附加到该事件的el / object,以便在执行该事件时,将触发附加的回调(事件处理程序)。
但是我观察到,当ref
上有一些数据时,即使没有诸如add /之类的触发器,上述代码行都由Javascript解释/执行时,firebase'value'事件也会自动触发删除/修改该引用所发生的操作。
此解释/假设是否正确,或者value
事件的工作方式与从添加/删除/修改操作触发的其他任何事件一样。在那种情况下,那是什么触发器?
也,如果value
事件自动触发,实际上会对该引用上的firebase数据库进行异步/网络调用,然后获取该数据(快照)或是客户端的缓存数据,即没有异步/网络请求。
任何预算都可以澄清这两种混淆吗?感谢您的帮助。
答案 0 :(得分:2)
您可以使用value事件读取内容的静态快照 在事件发生时存在的给定路径上。 此方法 附加侦听器时触发一次,每次触发一次 数据(包括子项)发生了变化。事件回调传递给 快照,其中包含该位置的所有数据,包括子数据。 如果没有数据,则在调用时快照将返回false 存在(),当您在其上调用val()时为null。
附加侦听器后,SDK将使用其与数据库的持久连接来检查是否有新数据。如果没有任何新数据,那么将提供本地缓存的数据。