Using firebase-tools v3.18.6, I have 3 different projects in my account simulating dev/qa/prod environments. Deploying to dev and qa works just fine, but deploying to the 3rd project fails with the following debug output (masked possible sensitive info):
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>
I have already followed the google cloud docs and made sure that:
- All needed apis are enabled
- The robot's service account has the CloudFunctions.ServiceAgent role
- I have editor/owner privileges on the project
Proof:
$ 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
At this point I am fairly convinced something went wrong internally when enabling the firebase functions apis on my project, but want to know if someone has seen this same issue before I upgrade my support level.
TIA