我正在通过 Bitbucket 管道中的 Firebase CLI 使用 Firebase 应用程序分发,将应用程序部署到 Firebase。 只要我开始出现错误:
HTTP 错误:401,请求的身份验证凭据无效。需要 OAuth 2 访问令牌、登录 cookie 或其他有效的身份验证凭据。
FIREBASE_TOKEN 方法将很快被弃用并删除,我决定使用 GOOGLE_APPLICATION_CREDENTIAL 进行身份验证。
不幸的是,我无法使用 GOOGLE_APPLICATION_CREDENTIALS 进行身份验证,
- firebase appdistribution:distribute
请求因错误而失败,完全忽略 GAC。
错误:身份验证失败,您是否运行了 firebase 登录?
在过去的三天里阅读了 firebase 文档并进行了故障排除,但无法使其正常工作。
{
"type": "service_account",
"project_id": "xxxx",
"private_key_id": "xxx, ",
"private_key": "-----BEGIN PRIVATE KEY-----\nxxxxx\n-----END PRIVATE KEY-----\n",
"client_email": "xxxx",
"client_id": "xxxx",
"auth_uri": "xxxx",
"token_uri": "xxxx",
"auth_provider_x509_cert_url": "xxxx",
"client_x509_cert_url": "xxxx",
"universe_domain": "xxxx"
}
但是 firebase CLI 不使用它进行身份验证。无论如何。
我找到了解决方案。 GOOGLE_APPLICATION_CREDENTIALS 必须是 .json 文件的路径,而不是 JSON 密钥内容本身。
因此,无论如何,您都需要将密钥存储为文件,将 JSON 密钥内容放置在私有变量中(不需要字符转义),然后在脚本中您可以将其回显到 .json 文件,然后您可以在 GOOGLE_APPLICATION_CREDENTIALS 中使用该文件的路径变量。
echo $GAC_KEY > service-account.json
export GOOGLE_APPLICATION_CREDENTIALS="/folder/service-account.json"