使用firebase-functions-test运行离线测试时缺少`client_secret`

时间:2018-11-06 23:16:01

标签: firebase google-cloud-firestore google-cloud-functions

我正在使用firebase-functions-test对我的云功能进行单元测试。该测试被配置为运行脱机测试,但是访问测试Firestore时,仍然出现认证错误:Failed to parse refresh token file: Error: Refresh token must contain a "client_secret" property.。是什么原因造成的?

1 个答案:

答案 0 :(得分:1)

在挖掘firebase-functions-testfirebase-admin的代码之后,当初始化firebase-functions-test进入离线模式时,它仍然使用gcloud application default credentials。如果您曾经安装和使用过gcloud,它将保存在~/.config/gcloud/application_default_credentials.json中。

我在GCP上的一个旧项目中有一个设置,该设置是作为服务帐户而不是经过身份验证的用户登录的,因此我具有默认的凭据设置,但其中不包含{{ 1}}。我只是使用client_secret登录了应用程序默认值。这样就解决了这个问题。

离线模式需要身份验证的事实仍然令人困惑。我尚未使用无效但格式正确的应用程序默认凭据进行测试。