Firebase:云功能,如何缓存Firestore文档快照

罗尼·罗斯顿

我有一个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获取实时更新

Cloud Firestore触发器可能是另一个选择。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Firebase云功能更新Firestore文档的值

如何从云功能移动Firestore文档?

如何在Firebase云功能中使用adminSdk为Firestore文档创建文档ID?

Firebase函数-如何从云函数返回文档快照?

如何从Firebase云功能生成PDF文档

从Firebase onCall云功能读取Firestore中的文档

在云功能中访问云Firestore文档

如何从云功能更新firestore文档中的timeStamp字段?

如何在云功能中从 Firestore 访问多个文档

如何使用云功能在Firestore中删除文档

如何基于Firestore文档的时间戳属性触发云功能

Firestore文档快照如何工作?

您如何通过 Flutter 中的云函数从 Firestore 获取文档快照?

Google Firebase云功能+ Firestore

如何从文档快照获取Firestore文档ID?

使用云功能更新Firestore文档

Firebase-使用云功能定位特定的Firestore文档字段

Firebase Firestore 云功能:在 node.js 中按日期条件过滤文档

FIrebase 云函数(删除 Firestore 文档)

如何根据快照从 Firestore 获取文档 ID

如何通过文档快照updateTime查询firestore?

如何修复Android Cloud Firestore文档快照

文档中的Firebase云功能幂等性

如何写入具有从Firestore触发的Firebase云功能的云存储桶?

Firebase Firestore:云功能未正确部署

Firebase云功能Firestore数组联合

如何从firestore数据库中的云功能更新多个文档?

云功能:如何将Firestore Collection复制到新文档?

在我的云功能中使用 Firestore 触发器 (onUpdate) 时如何访问根文档?