使用 serviceaccount 的 Firebase 托管部署失败并显示 403

Firebase hosting deploy with serviceaccount fails with 403

我正在尝试通过管道(Gitlab,但是这对这个问题)。

当我 运行 在本地执行以下命令时(同样发生在管道中):

GOOGLE_APPLICATION_CREDENTIALS="/path/to/serviceaccount.json" firebase deploy --only hosting

我收到以下错误:

=== Deploying to 'my-firebase-project'...

i  deploying hosting

Error: HTTP Error: 403, The caller does not have permission

--debug 除了 403 之外没有提供任何更多细节。我已经为服务帐户设置了以下角色:

部署规则(使用 --only firestore)没有问题。我已阅读有关 Firebase hosting 角色的文档,但分配这些角色也不起作用。

有人知道我缺少哪些角色吗?

注意: 此处使用服务帐户进行部署,因此任何 firebase login / firebase logout 操作都不会产生任何影响。有关详细信息,请参阅

您必须使用 oadm policy add-cluster-role-to-user cluster-reader system:serviceaccount:myproject:default

在集群级别添加角色

在 Firebase 支持的帮助下,有人指出 部署到 Firebase page,它提供了所有必需角色的枚举。总结一下:

  1. 云构建服务帐户
  2. Firebase 管理员
  3. API 密钥管理员

我错过了第一个,导致了这个错误。希望这对其他人也有帮助!