【问题标题】:Firebase Cloud Functions: Error: Unexpected error while acquiring application default credentials: read ECONNRESETFirebase Cloud Functions:错误:获取应用程序默认凭据时出现意外错误:读取 ECONNRESET
【发布时间】:2018-01-12 20:21:39
【问题描述】:

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

Error: Unexpected error while acquiring application default credentials: read ECONNRESET 

有一些不相关的 ECONNRESET/firebase SO 答案没有提供解决方案: Firebase Storage & Cloud Functions - ECONNRESET

【问题讨论】:

    标签: firebase google-cloud-functions


    【解决方案1】:

    问题:

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

    const functions = require('firebase-functions');
    const admin = require('firebase-admin');    
    
    admin.initializeApp(functions.config().firebase);
    

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

    我必须使用我的 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"
    });
    

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

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

    然后点击服务帐户标签:

    然后点击“生成新的私钥”下载文件。

    然后,您可以将 JSON 文件移动到您的项目函数文件夹中并导入它,如上面的代码 sn-p 所示。

    【讨论】:

    • 当我这样做时,我收到以下错误:找不到模块'/Users/nikhilsridhar/Desktop/test-eed0a-firebase-adminsdk-c4tmt-5d905a082b.json'
    • 密钥是否必须在函数文件夹中?如果我如何定义它,我做错了什么 var serviceAccount = require('/Users/nikhilsridhar/Desktop/test-eed0a-firebase-adminsdk-c4tmt-5d905a082b.json');
    • 我将 JSON 密钥文件包含在函数文件夹中,并且 require 在 index.js 中,如下所示: const serviceAccount = require(./${firebaseProjectName}-firebase-adminsdk.json);我刚刚修改了文件名,以便我可以在开发/测试和生产 firebase 项目之间动态切换。希望对您有所帮助。
    • 你可以 git 忽略该文件,这样它就不会包含在 repo 中。
    猜你喜欢
    • 1970-01-01
    • 2018-11-23
    • 2017-08-14
    • 2020-03-25
    • 2018-02-20
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多