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