从服务帐户跨项目访问Firebase数据库

时间:2018-10-14 08:04:52

标签: firebase firebase-realtime-database firebase-cli

我有一个未启用计费功能的Firebase项目。我想使用属于另一个启用了结算功能的项目的VM创建数据库备份。备份脚本非常简单:

.npm/bin/firebase --project $PROJECT_ID database:get /

将新创建的服务帐户(通过GCE)分配给运行此脚本的VM。如果此帐户无权访问项目$PROJECT_ID,则显然失败:

Error: Authorization failed. This account is missing the following required permissions on project $PROJECT_ID:

firebase.projects.get
firebasedatabase.instances.get

但是将这些特定的权限授予服务帐户,甚至将“所有者”角色分配给该项目并没有使它变得更好。相反:

Error: HTTP Error: 404, The specified project was not found.

使用--debug运行会显示GET https://admin.firebase.com/v1/projects/$PROJECT_ID具体返回404。

项目存在,我通过使用自己的(非服务)帐户在工作站上运行完全相同的命令来进行验证。我还通过在VM上运行gcloud auth list来验证该帐户是正确的帐户。该项目还会显示在同一VM上的gcloud projects list输出中。

是否可以使服务帐户跨项目工作并访问Firebase数据库?

2 个答案:

答案 0 :(得分:0)

有类似的问题,

其他人为我的团队创建了Firebase应用,我拥有所有者权限。

这对我有用,请尝试以下命令:firebase use --add

向Paco Zevallos提出评论,促使我提出了解决方案。

我在https://stackoverflow.com/a/45263918/5283424

处看到了此解决方案

检查该解决方案以获取其他命令和故障排除。

答案 1 :(得分:0)

enter image description here

在cli中运行以下命令: firebase使用--add

我在https://firebase.google.com/docs/hosting/?authuser=0

处看到了该解决方案