我正在使用 Cloud Functions 和 Firestore 开发 Firebase 项目。
我面临的主要挑战是确保单例(或任何使用的“全局”对象,以便函数执行期间代码的不同部分可以访问相同的“缓存数据”,而无需传递它通过多层)在云函数调用之间是非持久性的,即单例对象仅在云函数的单次调用期间存在于内存中,并且不得在不同的调用之间共享。
可以在 Firebase Cloud Functions 中实现此目的吗?
这是不可能的。
Cloud Functions 基础架构决定在任何时候应有多少服务器实例运行您的代码,并且这些实例永远不会在代码中具有相同的“全局”数据视图。 Cloud Functions 还确定任何给定实例保持活动状态的时间,因此您无法确定任何给定全局变量的持续时间。
如果您需要持久数据存储始终保持活动状态并共享数据,那么您将需要使用单独的产品来提供它,例如数据库。