由于权限错误,无法部署 Firebase 云功能

Posted

技术标签:

【中文标题】由于权限错误,无法部署 Firebase 云功能【英文标题】:Unable to deploy a firebase cloud function due to permission error 【发布时间】:2020-08-28 13:22:11 【问题描述】:

我试图使用 firebase cli 部署我的第一个 firebase 云功能,但我遇到了一个错误:

C:\Users\Anurag Tripathi\Desktop\firebasecloudfunction> firebase deploy --only functions

Error: Missing permissions required for functions deploy. You must have permission iam.serviceAccounts.ActAs on service account  project_number@appspot.gserviceaccount.com.

To address this error, ask a project Owner to assign your account the "Service Account User" role from this URL: 
        https://console.cloud.google.com/iam-admin/iam?project=project_number

我尝试按照说明解决问题,但没有成功。请帮忙。

【问题讨论】:

你是怎么修好的? 【参考方案1】:

如docs 中所述,除了服务帐户用户 角色,您应该将Cloud Functions 管理员 角色分配给您正在使用的服务帐户部署功能

【讨论】:

我已经给了 project-id@appshot.gserviceaccount.com 服务帐户用户角色和云功能管理员角色,但我仍然遇到同样的错误。你知道使用哪个服务帐号来部署功能吗 在您的机器上设置 Firebase CLI 时,您应该将这些权限分配给您登录时使用的任何帐户 不,没用。错误消息显示将服务帐户用户角色分配给 project-number@appshot.gserviceaccount.com 。但我在 GCP 的服务帐户列表中找不到此服务帐户。我有 project-id@appshot.gserviceaccount.com 但没有 project-number 。你建议我做什么? 我仍然遇到同样的错误,有人找到解决方案了吗 @anurag7,您应该可以在IAM page 中看到服务帐户。确保您选择了正确的项目【参考方案2】:

原来我在 .firebaserc 文件中的项目名称有误。将名称更改为正确的谷歌云项目名称后,它起作用了。

【讨论】:

谢谢... :) 另一个原因可能是您刚刚使用错误的帐号登录,像我一样,注销并登录,只是为了确保 运行项目名称:firebase use --add【参考方案3】:

这对我有用。首先运行 firebase login:list 以查看登录到 firebase cli 的帐户是否与您在 Google Cloud Console 中授权的帐户相同。如果没有,请运行firebase logout <email>,然后运行firebase login,然后再次部署。

【讨论】:

【参考方案4】:

我遇到了同样的问题,我刚刚做了 firebase 注销和 firebase 登录,问题已解决

【讨论】:

我认为它正在工作,我没有遇到权限错误,虽然我的代码中有一些错误,我稍后会修复。哇,经过这么多的挠头,解决方案很简单。谢谢! 好的,我接受了答案,因为当时 Firebase 注销和登录对我有用,但现在我再次面临同样的问题。任何帮助将不胜感激。【参考方案5】:

我与一位从项目所属的组织继承Firebase Admin角色的同事遇到了这个问题。

我确认他继承了该角色,但与您从 Firebase Console -> Users and Permissions 手动分配角色时的权限不同。

所以,我可以按照错误日志中显示的链接中的说明进行操作。但我认为从 firebase 控制台重新分配 Firebase Admin 角色会更安全。这样就解决了问题。

【讨论】:

【参考方案6】:
firebase projects:list

如果当前 Firebase 帐户没有您的项目,您必须先注销。

firebase logout  
firebase login
firebase projects:list

firebase use <project ID>

例如,

firebase use stripesample1


firebase projects:list

firebase deploy --only functions

【讨论】:

以上是关于由于权限错误,无法部署 Firebase 云功能的主要内容,如果未能解决你的问题,请参考以下文章

由于 CORS 限制,无法使用 firebase 在本地进行测试

无法在 Firebase 云功能中部署 PubSub 功能

迁移到打字稿后,Firebase 云功能无法正常工作

错误 Firebase cli 云功能部署。 npm 错误!函数@ lint 脚本失败

错误:部署云功能时解析触发器出错 - Firebase

部署 Firebase 云函数时出错