通常,不需要缓存数据来限制 Firebase 的使用。Firebase 在客户端维护自己的“活动”数据缓存。“活动”被定义为“开启”呼叫未完成的数据。因此,对于任何活动数据,任何额外的“on”或“once”调用都不需要网络流量,因为数据已经加载。
我不完全确定“查询 firebase”是什么意思。Firebase 没有传统意义上的查询。它只是具有附加回调的方法。您是否使用“once()”函数定期从 Firebase 获取数据?如果是这样,这可能是非常低效的。一次是一种方便的方法,通常只应用于极不经常访问的数据或由于某种原因开发人员不想实时更新的数据。如果在 once() 完成时没有未完成的活动“on”调用,Firebase 将刷新该数据的缓存,并且对 once() 的任何后续调用都需要往返服务器。
如果您想要一种以有效方式同步访问最新版本数据的本地副本的方法,我推荐这种方法:
var savedSnapshot = null;
dataRef.on("value", function(snapshot) {
savedSnapshot = snapshot;
});
//and then when you need to read the data
var theData = savedSnapshot.val()
通过维护一个 on() 调用,Firebase 能够通过仅在事情发生变化时通过线路发送增量来保持数据最新,而不是在每次需要时重新加载所有数据。