我有一个Firebase Cloud Function,可以直接从我的应用程序调用。此云函数获取Firestore文档的集合,在每个文档上进行迭代,然后返回结果。
我的问题是,最好将获取/获取的结果保存在内存中(在节点服务器上)并用刷新.onSnapshot
?似乎这将提高性能,因为我的云功能无需等待Firestore响应(它已经在内存中存储了集合)。我该怎么做?像填充全局变量一样简单吗?如何.onSnaphot
使用云功能进行实时监听?
这可能取决于这些快照的大小以及可以缓存多少快照...
因为,它是一个RAM
磁盘,如果没有内部管理,它可能只能在有限的时间内工作。
一律删除临时文件
临时目录中的本地磁盘存储是内存中的文件系统。写入的文件会消耗函数可用的内存,有时在两次调用之间仍然存在。未能明确删除这些文件可能最终会导致内存不足错误和随后的冷启动。
资料来源:云功能-技巧与窍门。
它并没有说明硬限制到底是什么-缓存在其他地方可能不会大大改善访问时间。它说 2048mb
每个功能,每个默认值-而一个人可以使用IAM&admin提高配额。这完全取决于每个函数的配额是否可以提高到足以处理缓存的程度。
这是该.onShapshot()
事件的示例:
// for a single document:
var doc = db.collection('cities').doc('SF');
// this also works for multiple documents:
// var docs = db.collection('cities').where('state', '==', 'CA');
var observer = doc.onSnapshot(docSnapshot => {
console.log(`Received doc snapshot: ${docSnapshot}`);
}, err => {
console.log(`Encountered error: ${err}`);
});
// unsubscribe, to stop listening for changes:
var unsub = db.collection('cities').onSnapshot(() => {});
unsub();
Cloud Firestore触发器可能是另一个选择。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句