我正在尝试使用Typescript优化诸如here这样的Firebase云功能的网络
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不太熟悉,所以请帮助我。
另一个问题是何时触发“数据”解析??
答案 0 :(得分:1)
您无法在Cloud Functions中的“ localhost”(127.0.0.1)上访问任何内容。我怀疑您打算在其中放置其他主机,并确保您的项目在Blaze计划中,以实现与不受Google完全控制的服务的传出连接。
答案 1 :(得分:0)
原来,我需要采用付费计划,才能从函数内部发出外部HTTP请求。
答案 2 :(得分:0)
您可以在localhost上运行Cloud Functions。您需要做的就是运行Cloud服务的本地仿真器。 Google提供了哪些!这是一个非常棒的工具和出色的设置!
针对Firebase工具套件执行以下步骤: https://firebase.google.com/docs/functions/local-emulator
针对Cloud工具套件执行以下步骤: https://cloud.google.com/functions/docs/emulator
它们非常相似。
您不需要Blaze计划,可以使用“随用随付”计划,其中包括免费套餐配额。 “包括免费使用Spark计划*” https://firebase.google.com/pricing