【发布时间】:2021-01-02 03:53:25
【问题描述】:
我正在使用 Oauth2 验证第三方 Firebase 项目所有者及其 Google 帐户的身份,以授予对其 Firestore 云平台项目的访问权限。我的目标是让数据库触发器运行,而不是来自我自己的数据库,而是在第三方管理员拥有的数据库上运行,即我不拥有或无法直接访问的数据库。
对于我自己的管理员,我会使用自己的服务帐户:
const admin = require('firebase-admin');
const serviceAccount = require('./path/to/serviceAccountKey.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
const db = admin.firestore();
第三方 Firebase 管理员是否可以在不手动共享项目的情况下授予对其数据库的访问权限?
对不是通过firebase-admin sdk 独占的选项开放?
可能的选项可能类似于:
- 通过
Oauth获取第三方访问权限 - 现有的 Google Cloud API 可通过
Oauth或其他方式获得他们的serviceAccount.json或Firebase Project Settings。
要实现这一点:
const admin = require('firebase-admin');
//Maybe this??
const thirdPartyServiceAccount = require('./path/to/serviceAccountKey.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
//Or this??
admin.initializeApp({
credential: admin.credential.refreshToken(thirdPartyRefreshToken)
});
const thirdPartyDB = admin.firestore();
类似的问题似乎没有解决我的用例
【问题讨论】:
标签: node.js firebase google-cloud-firestore google-api firebase-admin