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

时间:2018-10-09 01:56:40

标签: javascript firebase firebase-realtime-database

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

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

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

我正在听value上的alarmAcknowledgements更改事件。如果将新条目添加到alarmAcknowledgements,将重新下载现有数据还是仅下载新条目。

我问这个问题的原因是因为Firebase是否每次都在该位置接收完整的数据,并且该位置的数据量增加了?

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

  2. 随着位置上数据的增加,我还将招致更多的带宽费用。

1 个答案:

答案 0 :(得分:3)

只要侦听器处于活动状态,任何已由侦听器下载的数据都将保留在任何内存中。如果数据不变,则永远不会第二次下载。

此外,如果启用了磁盘持久性,则在服务器上保持不变的情况下,缓存到磁盘的数据将不会再次下载。