【发布时间】:2018-10-09 01:56:40
【问题描述】:
当我在 Firebase 实时数据库中的某个位置添加 valueevent 时,是每次触发事件时在该位置传输的完整数据(即在那个位置更改值location) 还是 Firebase 维护一个本地副本并仅在内部接收更改的数据并从本地副本添加其余数据?
我在我的 react-native 应用程序中使用 Javascript SDK。例如,假设我在添加值更改处理程序的位置有以下数据
{
"alarmAcknowledgements" : {
"1539018000000" : {
"-LO-1HsCjevE9M1R8vB3" : {
"-LOJRLBaZv3PcoU72UQg" : {
"response" : "Confirm",
"timestamp" : 1539015009220
},
"-LOJW1eCZzd0T7YMxHTh" : {
"response" : "Decline",
"timestamp" : 1539016240020
}
}
}
}
}
我正在收听valuealarmAcknowledgements 的更改事件。如果将新条目添加到alarmAcknowledgements,是否会再次下载现有数据或仅下载新条目。
我问这个问题的原因是因为如果 Firebase 每次都在该位置接收到完整的数据并且该位置的数据量增加:
随着时间的推移,同步需要更多时间。
随着时间的推移,随着该位置的数据增加,我还会产生更多的带宽费用。
【问题讨论】:
-
除了 Doug 的精彩回答:如果您想查看实际发生的情况,请打开浏览器的开发人员工具,转到“网络”选项卡,然后检查 Web Socket 流量。您可以准确地看到 Firebase 在那里发送和接收的数据。
-
@FrankvanPuffelen 感谢您的提示。
标签: javascript firebase firebase-realtime-database