使用firebase-tools v3.18.6,我的帐户中有3个不同的项目模拟dev / qa / prod环境。部署到dev和qa工作正常,但部署到第3个项目失败,出现以下调试输出(屏蔽可能的敏感信息):
firebase --debug --project=prod deploy --only functions
... lots of debug output ...
[2018-06-13T15:36:07.954Z] <<< HTTP RESPONSE 403 x-guploader-uploadid=AEnB2UoLPpYzpkSxyI2w-TCcJeZX8XvBvId1gEIMX1yoTBLqhEyNTR7whmnMV7z9gyVZ14T6QZj9I4GBXjBm_bj_FWgyc-v6hynRxROPl1sIQh_O1d8UWq0, content-type=application/xml; charset=UTF-8, content-length=297, vary=Origin, date=Wed, 13 Jun 2018 15:36:07 GMT, server=UploadServer, alt-svc=quic=":443"; ma=2592000; v="43,42,41,39,35", connection=close
[2018-06-13T15:36:07.955Z] <<< HTTP RESPONSE BODY <?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code><Message>Access denied.</Message><Details>service-XXXXXXXXXXX@gcf-admin-robot.iam.gserviceaccount.com does not have storage.objects.create access to gcf-upload-us-central1-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX.</Details></Error>
我已经关注the google cloud docs并确保:
证明:
$ gcloud services list --project=prod | grep functions
cloudfunctions.googleapis.com Cloud Functions API
$ gcloud projects get-iam-policy prod | grep -B1 -A1 gcf
- members:
- serviceAccount:service-XXXXXXXXXXX@gcf-admin-robot.iam.gserviceaccount.com
role: roles/cloudfunctions.serviceAgent
$ gcloud projects get-iam-policy prod | grep -B1 -A1 jorgeg
- members:
- user:jorgeg@company.com
role: roles/owner
此时我确信在我的项目中启用firebase功能apis时内部出了问题,但想知道在我升级支持级别之前是否有人看到了同样的问题。
TIA
答案 0 :(得分:2)
我们遇到了同样的问题并通过以下方式解决了这个问题:
gcloud beta函数部署myFunction --trigger-http --stage-bucket foo
答案 1 :(得分:0)
我不记得那是否与我收到的完全相同的错误信息,但我认为我经历过类似的事情 - 我知道它与云功能有关。我记得我的服务帐户没有获得许可,甚至根本不存在。不幸的是,我无法解决它(我太懒了,无法接触Firebase支持)。
在我的情况下,我很幸运,这是开发环境,所以没有人关心我是否将其删除并制作了新的环境。我导出了我的数据库,删除了有问题的项目,并开始使用新的Firebase项目......并修复了它。我不确定这是否适合你,因为你说它的制作失败了,如果其他人会关心你是否垃圾和放弃重新启动。