Firebase管理员:代表第三方管理员访问Acess数据库



我使用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打开选项?

可能的选择可能是:

  1. 通过Oauth获得第三方访问权限
  2. 现有Google Cloud API通过Oauth权限或其他方式获取其serviceAccount.jsonFirebase 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();

类似的问题似乎没有解决我的用例

如何在Firestore上使用权限有限的Admin SDK?

使用firebase admin或任何Google Cloud SDK(而非web和移动客户端(编写访问Firestore的后端代码时,所有访问权限都是通过用于初始化SDK的服务帐户授予的。几乎所有的谷歌云产品都是这样,身份验证系统被称为Cloud IAM。

如果你想让某一方访问你的数据库,典型的过程是创建一个服务帐户,并只授予它访问该方所需的权限。然后,他们可以使用该服务帐户初始化他们想要使用的SDK,IAM将确保该帐户只能执行允许的任何操作。

相关内容

最新更新