能否同时完成2个或更多其他功能来触发Google Cloud功能?

问题描述

我不确定要搜索什么,因为我不适合该主题

我想的有点像JS Promise.all([...])。then(),但适用于云函数

例如功能A取决于功能B和C的成功完成,而功能B和C彼此不知道并且可以同时运行。

我认为这样的东西本机不可用?

我唯一能想到的就是保留某种持久性寄存器和一个中间函数,该中间函数会在B和C都完成时触发,并检查组是否已完成并在它们完成时触发A。

解决方法

仅凭Cloud Functions是不可能的。该系统是无状态的-每次函数调用都没有“记忆”。

您需要做的是使另一个产品保持状态,该状态将负责在前两个功能完成后触发第三个功能。一种实现方法是使用Firestore文档存储每个功能的完成状态。功能B和C必须在一些共享唯一ID上达成共识,以标识其工作。该ID可以用作存储每个功能的完成状态的集合中文档的ID,这些功能必须在完成之前将其状态写入该文档。然后,您可以编写一个Firestore触发器,当该集合中的文档发生更改时将调用该触发器。然后,该功能将检查文档以查看B和C是否完整,并运行A。