firebase - 附加 firebase 云函数或从云函数调用缓存其数据
问题描述
我有一个前端组件,它由一个图表和几个不同的过滤器组成,允许用户按数据类型进行过滤。但是,他们过滤的数据比较大,所以我不想将它们全部加载到网页中,而是让 firebase 云功能来处理过滤。问题是用户在使用这个组件时通常会做一堆过滤,所以云功能重复下载必要的数据是没有意义的。有没有办法将云函数“附加”到调用并让它更新而不必重新检索数据,或者如果不可能的话,以某种方式将检索到的 firebase 数据缓存到云函数可访问的某个地方?
exports.handleChartData = functions.database.ref("chartData").onCall((data, context) => {
// can I cache data here somehow
// or can I have this function read in updates from user selected filters
// without having to retrieve data again?
}
解决方案
您可以将数据写入本地/tmp
磁盘。请注意:
- 无法保证下次数据会在那里,因为实例会根据需要向上和向下旋转。因此,您需要在每次调用时检查文件是否存在,并准备好在它尚不存在时创建它。
- 磁盘空间是 RAM 磁盘,因此写入其中的
/tmp
任何文件都将来自您为 Cloud Functions 容器分配的内存。 - 您不能可靠地让侦听器在调用期间保持活动状态,因此您将无法更新缓存。
另见:
推荐阅读
- mobx - 元素描述符的 .kind 属性必须是“方法”或“字段”
- php - 在 Slim 应用程序中实现标准 PHP 表单验证
- flutter - Flutter:删除按钮中的填充 - FlatButton、ElevatedButton、OutlinedButton
- twilio - twilio 语音 javascript 打字稿版本
- scala - Scala 和 SparkSQL:ClassNotPersistableException
- kendo-ui - 整数的剑道网格列验证
- java - Java中乘法,减法和除法的运算顺序?
- python - airtable python wrapper - 传递API密钥不起作用
- c++ - 如何在 Qt5 中使用键盘输入来执行函数 xyz?
- r - 将一个函数映射到多个数据帧