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的主要内容,如果未能解决你的问题,请参考以下文章