【发布时间】:2019-01-05 05:30:42
【问题描述】:
firebase 中如何缓存数据库数据?
基于this SO answer,只要有活动的侦听器,firebase 就会缓存数据。
考虑以下示例:
exports.myTrigger = functions.database.ref("some/data/path").onWrite((data, context) => {
var dbRootRef = data.after.ref.root;
dbRootRef.child("another/data/path").on("value", function(){});
return dbRootRef.child("another/data/path").once("value").then(function(snap){/*process data*/})
}
这将缓存数据,但问题是 - 这对服务器端有效吗?我是否应该在某个时间点致电.off(),这样它就不会产生任何问题,因为这个电话可以迅速扩大规模,产生大量的“.on()”听众?还是可以无限期保留“on()”?
【问题讨论】:
-
这听起来像XY problem。您想通过将数据保存在内存中来完成什么?
-
谢谢@FrankvanPuffelen - 看起来你对 XY 问题是正确的。我的目的是减少发生在服务器端的数据库下载,即 firebase 功能。因此,该函数仅在发生更改时才下载所需的数据 - 客户端可以在“some/data/path”处执行多次写入,但我想尽量减少在“another/data/path”处的读取次数
标签: node.js firebase firebase-realtime-database google-cloud-functions