Firebase云功能:错误:获取应用程序默认凭据时出现意外错误:读取ECONNRESET

Jos*_*yck 7 firebase google-cloud-functions

当尝试使用http触发器运行我的firebase云功能时,我不断地得到此错误,但只是间歇性地:

Error: Unexpected error while acquiring application default credentials: read ECONNRESET 
Run Code Online (Sandbox Code Playgroud)

有一些不相关的ECONNRESET/firebase SO答案没有提供解决方案: Firebase存储和云功能 - ECONNRESET

Jos*_*yck 11

问题:

要初始化我正在使用的函数:

const functions = require('firebase-functions');
const admin = require('firebase-admin');    

admin.initializeApp(functions.config().firebase);
Run Code Online (Sandbox Code Playgroud)

解决方案(至少对我而言):

我必须使用我的Google服务帐户凭据:

var serviceAccount = require("./PATH_TO_YOUR_SERVICE_ACCOUNT_FILE_GOES_HERE.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://YOUR_FIREBASE_PROJECT_NAME.firebaseio.com"
});
Run Code Online (Sandbox Code Playgroud)

要获取firebase项目名称,请检查firebase项目控制台的左上角(A).

要下载服务帐户JSON文件,请单击firebase控制台左上角的(B)齿轮图标,然后单击(C)项目设置:

在此输入图像描述

然后单击服务帐户选项卡:

在此输入图像描述

然后单击"生成新私钥以下载文件".

然后,您可以将JSON文件移动到项目函数文件夹中,并将其导入,如上面的代码段所示.

在此输入图像描述