由于权限错误,无法部署 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 在本地进行测试