当我在 Firebase 实时数据库中的某个位置添加value
事件时,是每次触发事件时都会传输该位置的完整数据(即在该位置更改值(,还是 Firebase 维护本地副本并在内部仅接收更改的数据,并从本地副本添加其余数据?
我正在我的反应原生应用程序中使用 Javascript SDK。 例如,假设我在添加值更改处理程序的位置有以下数据
{
"alarmAcknowledgements" : {
"1539018000000" : {
"-LO-1HsCjevE9M1R8vB3" : {
"-LOJRLBaZv3PcoU72UQg" : {
"response" : "Confirm",
"timestamp" : 1539015009220
},
"-LOJW1eCZzd0T7YMxHTh" : {
"response" : "Decline",
"timestamp" : 1539016240020
}
}
}
}
}
我正在alarmAcknowledgements
收听value
更改事件.如果将新条目添加到alarmAcknowledgements
中,是再次下载现有数据还是仅下载新条目。
我问这个问题的原因是,如果Firebase每次都收到该位置的完整数据,并且该位置的数据量会增加:
随着时间的推移,同步需要更多时间。
随着该位置的数据随着时间的推移而增加,我还会产生更多的带宽费用。
只要侦听器处于活动状态,侦听器已下载的任何数据都将保留任何内存。 如果数据保持不变,则永远不会再次下载数据。
此外,如果启用了磁盘持久性,则缓存到磁盘的数据在服务器上保持不变时不会再次下载。