Firebase admin sdk未经身份验证的对辅助firestore DB的查询

Firebase admin sdk未经身份验证的对辅助firestore DB的查询,firebase,google-cloud-firestore,google-cloud-functions,Firebase,Google Cloud Firestore,Google Cloud Functions,场景:我在数据库(数据库1)中有一个firestore文档(文档1)是公开可读的,即我可以进行未经验证的REST GET调用并获取数据 我还有另一个firestore数据库(数据库2),我想在其中进行克隆 文档1的数据,并将其保存到数据库2文档中 问题:如何从数据库2管理SDK检索数据库1文档1数据 动机:REST响应需要解析,我希望调用Firebase lib SDK而不需要任何解析 很少注意: 我不想向数据库1管理员公开数据库2服务帐户凭据 想知道是否可以使用数据库1项目id和/或url

场景:我在数据库(数据库1)中有一个firestore文档(文档1是公开可读的,即我可以进行未经验证的REST GET调用并获取数据

我还有另一个firestore数据库(数据库2),我想在其中进行克隆 文档1的数据,并将其保存到数据库2文档中

问题:如何从数据库2管理SDK检索数据库1文档1数据

动机:REST响应需要解析,我希望调用Firebase lib SDK而不需要任何解析

很少注意:

  • 我不想向数据库1管理员公开数据库2服务帐户凭据

想知道是否可以使用数据库1
项目id
和/或
url
创建firebase Admin的二级实例,而无需公开和信任。

这绝对是可能的,但是您需要在第二个项目中公开服务帐户的凭据,以便使用管理sdk进行此操作。如果在您的情况下这是可能的,您所要做的就是使用
firebaseOptions
引用不同的项目来实例化项目,如您所见:

并使用
secondary
变量访问所需的任何服务,例如,要访问第二个Firestore项目,请使用
secondary.Firestore()


正如Frank在评论中提到的,替代方法是使用常规Firestore SDK,您可以在中找到更多信息,过程非常类似。

使用Admin SDK访问数据库需要指定管理凭据。但是您可能想看看常规(非管理)Node.js SDK:Hello@jasan。有进展吗?
const secondaryServiceAccount = require('./path/to/serviceAccountKey.json');

const secondaryAppConfig = {
    credential: admin.credential.cert(secondaryServiceAccount),
    projectId: "YOUR_SECOND_PROJECT_ID"
};

const secondary = admin.initializeApp(secondaryAppConfig, 'secondary');