无法使用gcloud和服务帐户(403)运行Firebase测试实验室测试,没有storage.objects.create

eth*_*ton 3 google-cloud-storage firebase firebase-test-lab

我正在尝试使用glcoudCLI作为CircleCi中的服务帐户来运行检测测试。当我跑步时:

gcloud config set project project-name-12345
gcloud auth activate-service-account firebase-testlab-serviceuser@project-name-12345.iam.gserviceaccount.com --key-file ${HOME}/client-secret.json
gcloud firebase test android run --type instrumentation --app debug-app.apk --test debug-test.apk --device model=Nexus6P,version=27,locale=en,orientation=portrait --environment-variables coverage=true,coverageFile=/sdcard/tmp/code-coverage/connected/coverage.ec --directories-to-pull=/sdcard/tmp --timeout 20m
Run Code Online (Sandbox Code Playgroud)

我得到:

ERROR: (gcloud.firebase.test.android.run) Could not copy [debug-app.apk] to [gs://test-lab-xxxxxxxx-yyyyyyyy/2018-01-18_17:14:09.964449_zPAw/] ResponseError 403: firebase-testlab-serviceuser@project-name-12345.iam.gserviceaccount.com does not have storage.objects.create access to bucket test-lab-xxxxxxxx-yyyyyyyy..
Run Code Online (Sandbox Code Playgroud)

使用API​​控制台(https://console.cloud.google.com/iam-admin/iam/project),我已向服务用户授予了所有我认为可能相关的权限:

  • Firebase崩溃符号上传器
  • Firebase测试实验室管理员
  • 储存管理员
  • 存储对象管理
  • 存储对象创建者
  • 存储对象查看器
  • Firebase规则系统

任何帮助将不胜感激。谢谢。

eth*_*ton 5

在多次点击 Firebase 控制台和 Google Cloud Console、阅读 SO、在 Slack 上寻求帮助以及比我愿意承认的更多的尝试和错误之后,我发现 Firebase 控制台有一个服务帐户页面:

https://console.firebase.google.com/u/0/project/project-name-12345/settings/serviceaccounts/adminsdk

这与 Google Cloud Console 中的服务帐户页面不同

https://console.cloud.google.com/iam-admin/serviceaccounts/project?project-name-12345

原来你想要 Firebase 服务帐户,你不能通过云控制台创建一个。超级,超级烦。


小智 5

您应该能够使用在Google Cloud Console中创建的服务帐户。您的服务帐户是否具有所需的项目编辑者角色?(如本文档中所述:https : //firebase.google.com/docs/test-lab/continuous