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

J. *_*ams 8 firebase firebase-realtime-database firebase-cli

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

.npm/bin/firebase --project $PROJECT_ID database:get /
Run Code Online (Sandbox Code Playgroud)

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

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

firebase.projects.get
firebasedatabase.instances.get
Run Code Online (Sandbox Code Playgroud)

但是,将这些特定权限授予服务帐户,或者甚至将"所有者"角色分配给该项目并不会使它变得更好.代替:

Error: HTTP Error: 404, The specified project was not found.
Run Code Online (Sandbox Code Playgroud)

使用--debug专门GET https://admin.firebase.com/v1/projects/$PROJECT_ID返回404的节目运行.

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

有没有办法让服务帐户跨项目工作并访问Firebase数据库?

Mic*_*itt 0

有类似的问题,

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

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

感谢 Paco Zevallos 的评论,让我找到了解决方案。

我在以下位置看到了这个解决方案:https ://stackoverflow.com/a/45263918/5283424

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