场景:我在数据库(Database 1(中有一个公共可读的firestore文档(文档1(,即我可以在未经身份验证的情况下进行REST GET调用并获取数据。
我有另一个firestore数据库(Database 2(,我想在其中克隆文档1的数据,并将其保存到DATABASE 2文档中。
问题:如何从DATABASE 2Admin SDK检索数据库1文档1数据?
动机:REST响应需要解析,我希望能调用不需要任何解析的Firebase lib SDK。
注意事项:
- 我不想向DATABASE 1管理员公开DATABASE 2服务帐户凭据
想知道是否可以使用DATABASE 1project-id
和/或url
创建firebase Admin的辅助实例,而不暴露和信任。
这肯定是可能的,但您需要在第二个项目中公开服务帐户的凭据,以便使用admin-sdk。。如果这在您的情况下是可能的,那么您所要做的就是用引用不同项目的firebaseOptions
实例化项目,正如您在本文档中所看到的:
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');
并使用secondary
变量访问您需要的任何服务,例如,要访问第二个Firestore项目,请使用secondary.firestore()
。
正如Frank在评论中提到的那样,另一种选择是使用常规的Firestore SDK,您可以在本文档中找到更多信息,过程非常相似。