附加Firebase云功能或从云功能调用中缓存其数据

时间:2019-01-06 03:19:23

标签: firebase caching firebase-realtime-database google-cloud-functions

我有一个前端组件,该组件由一个图表和几个不同的过滤器组成,这些过滤器允许用户按数据类型进行过滤。但是,他们正在过滤的数据相对较大,因此我不想将所有数据都加载到网页中,而是使用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?
}

1 个答案:

答案 0 :(得分:2)

您可以将数据写入本地/tmp磁盘。请注意:

  • 由于实例将根据需要上下旋转,因此无法保证数据下次会存在。因此,您需要检查每个调用中是否存在该文件,并准备在尚不存在时创建它。
  • /tmp磁盘空间是RAM磁盘,因此写入其中的所有文件都将从您为Cloud Functions容器分配的内存中消失。
  • 您无法可靠地使收听者在通话中保持活动状态,因此您将无法更新缓存。

另请参阅:

相关问题