Firebase admin sdk未经身份验证的对辅助firestore DB的查询
场景:我在数据库(数据库1)中有一个firestore文档(文档1)是公开可读的,即我可以进行未经验证的REST GET调用并获取数据 我还有另一个firestore数据库(数据库2),我想在其中进行克隆 文档1的数据,并将其保存到数据库2文档中 问题:如何从数据库2管理SDK检索数据库1文档1数据 动机:REST响应需要解析,我希望调用Firebase lib SDK而不需要任何解析 很少注意: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管理员公开数据库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');