Firebase 云功能:ECONNREFUSED

Posted

技术标签:

【中文标题】Firebase 云功能:ECONNREFUSED【英文标题】:Firebase Cloud functions: ECONNREFUSED 【发布时间】:2018-11-29 23:52:10 【问题描述】:

我正在尝试使用 Typescript 优化 Firebase 云功能的网络,例如 here

const http = require('http');
const functions = require('firebase-functions');
const agent = new http.Agent(keepAlive: true);

export const getXXX = functions.https.onRequest((request, response) => 
    const req = http.request(
        host: 'localhost',
        port: 443,
        path: '',
        method: 'GET',
        agent: agent,
    , res => 
        let rawData = '';
        res.setEncoding('utf8');
        res.on('data', chunk =>  rawData += chunk; );
        res.on('end', () => 
            response.status(200).send(`Data: $rawData`);
        );
    );
    req.on('error', e => 
        response.status(500).send(`Error: $e.message`);
    );
    req.end();
);

但我不断得到

错误:连接 ECONNREFUSED 127.0.0.1:443

我对 TypeScript 和 js 不是很熟悉,所以请帮助我。 另一个问题 res.on 'Data' 何时被触发?

【问题讨论】:

您不应该尝试访问外部服务而不是 443 (TLS) 上的 localhost 吗? 【参考方案1】:

您无法访问 Cloud Functions 中“localhost”(127.0.0.1) 上的任何内容。我怀疑您打算在其中放置一个不同的主机,并确保您的项目在 Blaze 计划中,以启用与不受 Google 完全控制的服务的传出连接。

【讨论】:

请查看下面的答案***.com/a/56627026/4782247【参考方案2】:

事实证明,我需要付费才能从我的函数内部发出外部 HTTP 请求。

【讨论】:

这就是我在回答 Blaze 计划时所说的。【参考方案3】:

您可以在 localhost 上运行 Cloud Functions。您需要做的就是运行云服务的本地模拟器。谷歌提供的!这是一个非常棒的工具和一个很棒的设置!

为 Firebase 工具套件执行以下步骤: https://firebase.google.com/docs/functions/local-emulator

为 Cloud 工具套件执行以下步骤: https://cloud.google.com/functions/docs/emulator

它们非常相似。

您不需要 Blaze 计划,您可以使用“按需付费”计划,其中包括免费套餐配额。 “包括 Spark 计划的免费使用*”https://firebase.google.com/pricing

【讨论】:

以上是关于Firebase 云功能:ECONNREFUSED的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 云功能中的 Firebase 存储错误

Firebase 云功能总是超时

firebase 云功能中带有 typescript 的 firebase-admin

在云功能 Firebase 中访问数据

firebase 云计划功能无法正常工作

Firebase休息验证 - 云功能