【发布时间】:2019-03-12 06:28:36
【问题描述】:
我想在 http firebase 函数中缓存最近的记录(比如最近 24 小时)。 在 http firebase 函数(比如 fetchLastXRecords)中,如果未找到从数据库中获取并设置缓存,我会在缓存中查找记录(定义的全局变量来存储记录)。
当我想更新任何缓存记录时出现问题,因为其他 Firebase 函数无法访问此全局变量(可能是实时数据库更改触发器)。
什么是更新缓存中记录的好方法?我可以调用缓存 http firebase 函数并传递更新的记录吗?或者我可以将更新的记录存储在数据库中,然后缓存功能在数据库中查找并更新缓存记录?
【问题讨论】:
-
云函数应该是无状态的,因为每个函数都可以在单独的实例上运行。缓存是一种有效的方法,但您需要确保它为每个函数调用自动初始化。我不确定全局变量的问题是什么,所以请查看how to create a minimal, complete, verifiable example。
-
@FrankvanPuffelen 似乎我无法跨函数共享内存对象。任何全局变量(在函数范围外定义)仅用于单个函数的多次调用。
-
Cloud Functions 支持全局变量:cloud.google.com/functions/docs/concepts/…
标签: firebase caching firebase-realtime-database google-cloud-functions