我有一个未启用计费功能的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数据库?
答案 0 :(得分:0)
有类似的问题,
其他人为我的团队创建了Firebase应用,我拥有所有者权限。
这对我有用,请尝试以下命令:firebase use --add
向Paco Zevallos提出评论,促使我提出了解决方案。
我在https://stackoverflow.com/a/45263918/5283424
处看到了此解决方案检查该解决方案以获取其他命令和故障排除。
答案 1 :(得分:0)