我正在尝试使用glcoud
CLI作为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
我明白了:
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..
使用API控制台(https://console.cloud.google.com/iam-admin/iam/project)我已经为我的服务用户提供了我认为相关的所有权限:
任何帮助都会非常感激。感谢。
答案 0 :(得分:4)
经过大量点击Firebase控制台和Google云端控制台,阅读SO,请求Slack帮助以及比我更愿意承认的更多试验和错误,我发现Firebase控制台有一个服务帐户页面:< / p>
这与Google云端控制台中的服务帐户页面不同
https://console.firebase.google.com/u/0/project/project-name-12345/settings/serviceaccounts/adminsdk
事实证明,您需要Firebase服务帐户,您无法通过云控制台创建一个帐户。超级,超级烦人。
答案 1 :(得分:4)
您应该可以使用在Google云端控制台中创建的服务帐户。您的服务帐户是否具有所需的项目编辑角色? (如本文档中所述:https://firebase.google.com/docs/test-lab/continuous)
答案 2 :(得分:3)
我创建密钥的步骤如下:
1. Firebase控制台https://console.firebase.google.com/
2.项目设置
3.“服务帐户”标签
4.在“服务帐户”面板中,Firebase Admin SDK
5.在“ Firebase Admin SDK”面板的底部,“生成新的私钥”
这是 Etherton 的回答
https://stackoverflow.com/a/48327579/2353939
即使在那之后,我仍然有一些错误。因此,我添加了许多角色,如下所示。
Firebase测试实验室管理员
Firebase服务管理服务代理
Firebase Admin SDK管理员服务代理
服务帐户令牌创建者
存储对象创建者
那也没有解决。因此,最后,我应用了 P。戴维斯(Davis)可以通过向服务帐户添加编辑者角色来进行回答。 https://stackoverflow.com/a/48331465/2353939
添加编辑器角色的步骤如下
1.转到Google云控制台https://console.cloud.google.com/iam-admin/iam
2.进入“ IAM”
3.使用从firebase控制台下载的json文件中的“ client_email”找到您需要编辑的服务帐户。
4.单击右侧的“编辑”图标
5.向下滚动并“添加其他角色”
6.单击输入字段,然后输入“ Editor”进行搜索
7.选择带有副标题“编辑对所有资源的访问权限”的那个
8.保存
9.现在您应该可以使用它
答案 3 :(得分:0)
这是我添加到服务帐户中的角色的列表:
从Firebase还是Google Cloud Console创建服务帐户都没有关系。只要您在服务帐户中具有这些角色,就应该可以运行Firebase测试实验室。