簡體   English   中英

Firebase 函數:無法加載默認憑據

[英]Firebase Functions: Could not load default credentials

我有一個訂閱 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之后第一次運行時失敗,並且可能在“冷啟動”時失敗。

不確定我做錯了什么以及為什么它只會在第一次運行時失敗。

解決了! 這個答案有幫助: 錯誤:無法加載默認憑據(Firebase 函數到 firestore)

在用於 API 調用的 Firebase 函數中,我發布到一個 Cloud PubSub 主題,如下所示:

pubsub.topic(topicName).publish(dataBuffer, customAttributes)

我沒有等待響應,而是立即將 2XX HTTP 響應發送回客戶端。 執行似乎繼續正常,但顯然它沒有按預期運行。

有時API 響應調用本身會失敗(並且永遠不會發布消息),但有時不會。 在其他情況下,發布會成功,但訂閱主題的 Firebase 函數會失敗!

在所有情況下,這似乎在第二次運行腳本后自行解決。 因此,我仍然認為這與冷啟動有關。

但是因為我把它改成這樣等待:

await pubsub.topic(topicName).publish(dataBuffer, customAttributes)

我還沒有看到這個問題再次發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM