javascript - Firebase 实时数据库值事件期间传输的数据

标签 javascript firebase firebase-realtime-database

当我在 Firebase 实时数据库中的某个位置添加事件时,是每次触发该事件时传输的该位置的完整数据(即值在该位置发生更改)或者 Firebase 维护本地副本并仅在内部接收更改的数据并从本地副本添加其余数据?

我在我的react-native应用程序中使用Javascript SDK。例如,假设我在添加值更改处理程序的位置有以下数据

{
  "alarmAcknowledgements" : {
    "1539018000000" : {
      "-LO-1HsCjevE9M1R8vB3" : {
        "-LOJRLBaZv3PcoU72UQg" : {
          "response" : "Confirm",
          "timestamp" : 1539015009220
        },
        "-LOJW1eCZzd0T7YMxHTh" : {
          "response" : "Decline",
          "timestamp" : 1539016240020
        }
      }
    }
  }
}

我正在监听alarmAcknowledgements处的value更改事件。如果向 alarmAcknowledgements 添加新条目,是否会再次下载现有数据或仅下载新条目。

我问这个问题的原因是,如果 Firebase 每次都收到该位置的完整数据,并且该位置的数据量会增加:

  1. 随着时间的推移,同步将需要更多时间。

  2. 随着该位置的数据量随着时间的推移而增加,我还将承担更多的带宽费用。

最佳答案

只要监听器处于事件状态,监听器已下载的任何数据都将保留在内存中。如果数据未更改,则不会再次下载。

此外,如果您启用了磁盘持久性,则缓存到磁盘的数据如果在服务器上没有更改,则不会再次下载。

关于javascript - Firebase 实时数据库值事件期间传输的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52712291/

相关文章:

node.js - 存储上的 Firebase 函数是否存在通配符?

android - E/炸药模块 : Failed to load module descriptor class: Didn't find class

swift - 如何从 firebase 读取数据

firebase - Firebase中基于多个where子句的查询

javascript - 如何使用 React Hooks 更新对象内数组的特定值?

ios - H。将Firebase添加到Flutter应用时找不到文件

javascript - jQuery on() 事件委托(delegate)

javascript - 保存数据时等待 Firebase 响应

javascript - 因期望失败而停止当前 IT 中的执行,但继续 Jasmine 中的规范测试

javascript - 将变量传递给函数作用域