Google功能:访问另一个项目的Firestore数据库

RmR*_*RmR 5 javascript google-cloud-functions firebase-admin google-cloud-firestore

我希望Google Cloud项目A(project-a-id)访问另一个Google Cloud项目B(project-b-id)的Firestore数据。同样,我添加了项目A默认服务帐户,即。project-a-id@appspot.gserviceaccount.com在项目B的IAM中并将角色设置为Cloud Filestore Editor

在项目A的云功能中,我试图访问项目A的(自己的)firestore和项目B的firestore,但它始终显示两个Apps的项目A的默认数据库。代码是:

var primaryAppConfig = {
  databaseURL: 'https://project-a-id.firebaseio.com'
};
var primaryApp = admin.initializeApp(primaryAppConfig, 'primary');
var primarydb = admin.firestore(primaryApp);

var secondaryAppConfig = {
  databaseURL: 'https://project-b-id.firebaseio.com'
};
var secondaryApp = admin.initializeApp(secondaryAppConfig, 'secondary');
var secondarydb = admin.firestore(secondaryApp);

Run Code Online (Sandbox Code Playgroud)

如果给项目a的默认服务帐户授予了项目b的权利,我的印象是,它应该自动获得权利。至少当我以这种方式访问​​Google云存储桶时,它才适用。

还有其他事情要做吗?谢谢

小智 2

我有一个云原生 Firestore,而不是项目 a 中的实时数据库。然而,当我尝试从项目 b 访问它时,遇到了同样的问题。
能够通过生成一个有权访问项目 a firestore 的服务帐户、下载凭据并使用以下命令从项目 b 访问相同的凭据来解决此问题:

credential_path = "pathTo/xxxxx.json"
db = firestore.Client.from_service_account_json(credential_path)
Run Code Online (Sandbox Code Playgroud)