javascript - Firebase 何时加载数据?

标签 javascript firebase

我的数据按日期和增量 ID 排序,如下所示:

  • 20140622
    • 值_1
    • 值_2
  • 20140623
    • 值_3
    • 值_4

为了检测何时添加新日期,我设置了一个 on('child_added') 监听器,然后设置了另一个 on('child_added') 监听器来检测该日期内的新值,因为 on('child_added') 是仅针对直系子级触发。

为了避免双带宽使用并加快加载速度,我想知道该快照的所有数据在哪一刻发生传输:当我定义新子项时或当我使用 .val( )函数?

最佳答案

当您使用 on() 或 Once() 建立监听器时,就会下载数据,并保留在本地缓存并同步,直到所有监听器断开连接。

通常不需要为嵌套子项建立 child_added 监听器,因为它们已经存在于作为父项下载的数据中:

var ref = new Firebase(URL);
ref.on('child_added', function(snap) {
   console.log('parent rec', snap.name());
   snap.forEach(function(childSnap) {
      console.log('child rec', childSnap.name());
   });
});

但是,嵌套 child_added 事件也没有什么坏处;这全部由 Firebase 内部优化,这些值将立即从本地缓存的数据中返回:

var ref = new Firebase(URL);
ref.on('child_added', function(snap) {
   console.log('parent rec', snap.name());
   snap.ref().on('child_added', function(snap) {
      console.log('child rec', snap.nam());
   });
});

这里唯一需要注意的是,如果您想稍后在这些事件监听器上调用 off(),则必须在服务器连接被切断并清除所有缓存数据之前将它们全部断开。

关于javascript - Firebase 何时加载数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24361890/

相关文章:

javascript - 数组作为 JavaScript 中的变量赋值

javascript - NaN 问题 - 无法在 Jquery 中显示数字

swift - 如何在 ios 应用程序中不断从 Firebase 读取更新值

javascript - xeponline.jqPlugin.js(或 css2pdf)SVG <use> 引用另一个 SVG 不会在 PDF 中显示

javascript - 清除本地存储?

javascript - 如何修复 IE 上的 innerHTML 不使用 HTML5 doctype 渲染实体的问题?

firebase - Firebase身份验证未保存当前用户

java - 从 Firebase 获取不进行任何更改的子项

ios - 从推送通知获取值 iOS Swift 4

javascript - 在 Firebase for Web 应用程序中检索值 - JavaScript