【问题标题】:Cross-project access to Firebase Database from a service account从服务帐号跨项目访问 Firebase 数据库
【发布时间】:2019-03-18 22:26:13
【问题描述】:

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

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

将新创建的服务帐户分配给运行此脚本的 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

但是将这些特定权限授予服务帐户,或者甚至为该项目分配“所有者”角色并不能让它变得更好。而是:

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 数据库?

【问题讨论】:

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


    【解决方案1】:

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

    我在https://firebase.google.com/docs/hosting/?authuser=0看到了这个解决方案

    【讨论】:

      【解决方案2】:

      有类似的问题,

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

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

      支持 Paco Zevallos 的评论,让我找到解决方案。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-03
        • 1970-01-01
        • 2022-06-29
        • 2020-08-26
        • 2021-03-08
        • 1970-01-01
        • 2017-08-15
        • 1970-01-01
        相关资源
        最近更新 更多