我在Firebase中有两个项目,假设是A和B。为了简单起见,假设项目A只使用Firebase云功能,项目B使用firestore。
我已经了解到,我必须创建一个自定义服务帐户来授予云功能访问另一个项目的数据库(firestore)。
现在我想知道if/how我可以使用一个云功能在项目a利用后台触发器(例如:document.onCreate),这是"听"项目B的firestore和火灾时,正在改变项目B的数据库?我找不到文档中提到的任何限制,说明这是不可能的,但我不太知道如何解决这个问题。
非常感谢!
你不能这么做。Firestore触发器通过Cloud PubSub工作,并与原始项目绑定。
你的解决方法是编写一个Firestore触发的后台函数,然后将消息从源项目转发到目标项目,以便它可以在目标项目中进行处理。
这将产生双重费用,因为您将为每次更改运行两个云函数。
另一种解决方法是在第二个项目的服务帐户上下文中运行第一个项目中的函数,或者使用在第二个项目中具有权限的第一个项目的服务帐户。这种跨项目访问很容易设置,并且与您在上一个问题中描述的访问Firestore所需的权限相同。
所有这些方法都有相当广泛的限制。我鼓励您详细说明为什么需要特定的配置来确保您不是在描述XY问题。
简短的回答是,你不能做你所描述的,但你可以通过各种变通方法达到类似的结果。