Ant*_*ott 0 travis-ci firebase google-cloud-functions firebase-admin
我有一个自动化测试,可以在本地运行云函数,以管理员身份登录,并将数据写入 Firestore。之前在非管理员权限下效果很好,现在我们正在将云功能升级为具有管理员权限。我可以在本地很好地运行测试,并且可以在本地提供该功能并使用 Postman 执行它,并且它工作得很好。
然而,当在我们的构建服务器(Travis CI - 付费)上运行时,该函数会抛出错误:14 UNAVAILABLE: Getting metadata from plugin failed with error: Could not refresh access token。
这是登录的第一个测试,因此意外地已经拥有正在刷新的访问令牌。
在本地,我已使用 登录到 firebase firebase login。我已经使用firebase login:ci和为 Travis 导出了登录令牌travis encrypt。
对于为什么我们在 Travis 上而不是在本地看到此错误有什么想法吗?
这是堆栈跟踪:
14 UNAVAILABLE: Getting metadata from plugin failed with error: Could not refresh access token.
at Object.<anonymous>.exports.createStatusError (node_modules/google-gax/node_modules/grpc/src/common.js:87:15)
at Object.onReceiveStatus (node_modules/google-gax/node_modules/grpc/src/client_interceptors.js:1188:28)
at InterceptingListener.Object.<anonymous>.InterceptingListener._callNext (node_modules/google-gax/node_modules/grpc/src/client_interceptors.js:564:42)
at InterceptingListener.Object.<anonymous>.InterceptingListener.onReceiveStatus (node_modules/google-gax/node_modules/grpc/src/client_interceptors.js:614:8)
at callback (node_modules/google-gax/node_modules/grpc/src/client_interceptors.js:841:24)
我正在初始化 Firebase:
const admin = require('firebase-admin');
admin.initializeApp({
'credential': admin.credential.applicationDefault(),
'databaseURL': firebaseConfig.databaseURL
});
Run Code Online (Sandbox Code Playgroud)
应用程序默认凭据(ADC) 不支持 Firebase 登录令牌(无论您的意思是什么)。为了使 ADC 在开发/测试环境中工作,您应该配置以下内容之一:
GOOGLE_APPLICATION_CREDENTIALS环境变量指向它。~/.config/gcloud/application_default_credentials.json包含有效刷新令牌配置的文件。该文件通常由gcloud和firebaseCLI 管理。本地函数模拟器在 (2) 中创建文件,这就是代码在本地运行的原因。您必须为 Travis 配置上述其中一项。
| 归档时间: |
|
| 查看次数: |
4145 次 |
| 最近记录: |