【发布时间】:2020-04-28 16:07:59
【问题描述】:
我有一个订阅 Cloud PubSub 主题的 Firebase 函数。应用程序的初始化非常简单,如下所示:
import * as admin from 'firebase-admin';
admin.initializeApp();
我收到此错误:
“错误:无法加载默认凭据。浏览至https://cloud.google.com/docs/authentication/getting-started 了解更多信息。 在 GoogleAuth.getApplicationDefaultAsync (/srv/functions/node_modules/google-auth-library/build/src/auth/googleauth.js:161:19) 在 process._tickCallback (internal/process/next_tick.js:68:7)"
这是奇怪的事情。它通常有效。换句话说,如果我第二次触发它,它就会起作用。第三次。大多数情况下,它似乎在新的firebase deploy 之后第一次运行时失败,并且可能在“冷启动”时失败。
不知道我做错了什么以及为什么它只会在第一次运行时失败。
【问题讨论】:
-
如果你做一个web search on this error message,你会发现它出现了很多。我建议做一些研究来弄清楚哪些事情对不同的人有用。确保您的模块都是最新的。尝试节点 8 和节点 10 运行时。
-
我看到的大部分内容都说要添加服务帐户 json 文件。诚然,我还没有这样做。然而,这似乎没有必要。我不会将它用于其他任何事情,并且实际上与我第一次执行它时失败的完全相同的事情会在一分钟后再次尝试时通过。并且继续很好......直到我部署新的更新。然后它又第一次失败了。我不明白不一致之处。
-
您不必添加其他服务帐户 - 默认服务帐户应该可用。问题可能在于正在使用的库的特定版本,或运行时的选择。如果您无法缩小范围,请联系 Firebase 支持以寻求帮助。 support.google.com/firebase/contact/support
-
我以为我已经解决了它,但结果只是有点断断续续。但是,总是在第一次尝试后工作(具有相同的请求)。我相信这与“冷启动”有关,因为我今晚早些时候在日志中看到了一些内容,该内容在几个小时不活动后出现了。似乎与此有关:github.com/googleapis/google-auth-library-nodejs/issues/798
标签: firebase google-cloud-functions google-cloud-pubsub firebase-admin