Firebase函数:支持跨函数的全局变量

2024-02-11

我想在 http firebase 函数中缓存最近的记录(比如最近 24 小时)。 在 http firebase 函数(例如 fetchLastXRecords)中,我在缓存(定义的全局变量来存储记录)中查找记录,如果找不到,则从数据库中获取并设置缓存。

当我想要更新缓存的任何记录时,就会出现问题,因为其他 firebase 函数无法访问此全局变量(可能是实时数据库更改触发器)。

更新缓存中的记录的好方法是什么?我可以调用缓存 http firebase 函数并传递更新的记录吗?或者我可以将更新的记录存储在数据库中,然后缓存功能在数据库中查找并更新缓存记录?


在 Cloud Functions 中,您无法确保代码中存在可供函数访问的全局变量。关于 Cloud Functions 的工作原理,您需要了解两件事:

  1. 在负载下,将分配多个服务器实例来运行您的功能。这些服务器实例不共享任何状态。
  2. 您的每个功能都部署到不同的服务器实例。两个函数永远不会在同一个服务器实例上运行。

因此,如果要在函数之间共享任何值,则应该使用持久性机制,例如数据库。当您的函数需要读取和写入共享值时,它们应该访问数据库。此外,他们应该使用某种原子事务来确保多个并发读取和写入的安全。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase函数:支持跨函数的全局变量 的相关文章

随机推荐