我想在http firebase函数中缓存最近的记录(例如最近24小时)。 在http firebase函数(例如fetchLastXRecords)中,如果找不到从数据库中获取并设置缓存,我会在缓存中查找记录(定义了Global变量以存储记录)。
当我想更新任何缓存记录时会出现问题,因为其他Firebase函数无法访问此Global变量(可能是实时数据库更改触发器)。
什么是更新缓存中记录的好方法?可以调用缓存http firebase函数并传递更新的记录吗?还是可以将更新的记录存储在数据库中,以后的缓存功能可以在数据库中查找并更新缓存记录?
答案 0 :(得分:2)
在Cloud Functions中,您无法确保代码中的全局变量可供您的函数访问。关于云功能如何工作,您需要了解两件事:
因此,如果要在函数之间共享任何值,则应使用持久性机制,例如数据库。当您的函数需要读取和写入共享值时,它们应该访问数据库。另外,他们应该使用某种原子事务来确保多个并发读取和写入是安全的。