服务帐户在命令行上有效,但在 firebase 功能中使用时无效

问题描述 投票:0回答:1

我有一个 Angular 客户端,它使用 Firebase Functions(配置为 Express App)上传文件。这一切都很好。

我现在创建了一个新的“prod”环境(新的 Firebase 项目)并进行了与“dev”环境相同的设置。

由于某种原因,在此环境中上传文件不起作用,失败并出现错误

[电子邮件受保护] 没有对 Google Cloud Storage 对象的 storage.objects.create 访问权限。资源上的“storage.objects.create”权限被拒绝(或者它可能不存在)。

  • 该资源确实存在
  • 服务帐户具有所需的权限(与开发项目相同)
  • 存储桶级别的权限似乎也是相同的
  • Firebase 应用程序使用服务帐户初始化

但是,如果在登录并调用后从 gcloud cli 调用,则上传
确实可以工作:

gcloud config set account [email protected]


为什么它可以在命令行中运行,但在从 Firebase 函数调用时却不能运行?

重申一下,这在我去年创建的“开发”项目中确实有效,所以我知道代码没问题,问题出在权限方面。

我尝试了各种角色并删除所有角色并再次添加回来。

firebase google-cloud-functions google-iam
1个回答
0
投票
花了一段时间才发现,但问题是 Firebase 仍被配置为使用开发存储帐户。因此,(有效)PROD 权限(服务密钥)与无效的 DEV 存储桶 ID 之间不匹配。

© www.soinside.com 2019 - 2024. All rights reserved.