gpt4 book ai didi

express - 为什么我的所有 Firebase 云功能都超时?

转载 作者:行者123 更新时间:2023-12-04 21:55:59 24 4
gpt4 key购买 nike

我正在尝试使用 firebase 云函数为外部 json api 创建代理。但现在我只是想把这一切都设置好。

我写了这个函数:

exports.helloWorld = functions.https.onRequest((request, response) => {
request.get('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Print the google web page.
}
})
});

然后我运行 firebase 函数模拟器并运行
curl http://localhost:5000/<project-id>/us-central1/helloWorld

它返回一条消息,说函数被触发,开始执行,但它只是坐在那里旋转,直到最终超时。
{"error":{"code":500,"status":"INTERNAL","message":"function execution attempt timed out"}}

我不确定我做错了什么。

…………

编辑

此功能完美运行:
exports.helloWorld = functions.https.onRequest((request, response) => {
response.send('test');
})

最佳答案

对于 Cloud Functions,HTTPS 类型的函数必须将结果写入客户端以指示函数已完成执行。在写入结果之前,假定该函数仍在运行一些异步工作。

因此,当您的请求完成时,您应该发送一些响应,即使它是空的。不幸的是,你已经影响了你的主要 response对象与另一个对象,因此您可能应该重命名其中一个:

exports.helloWorld = functions.https.onRequest((request, response) => {
request.get('http://www.google.com', function (error, res, body) {
if (!error && res.statusCode == 200) {
console.log(body) // Print the google web page.
}
return response.send("") // this terminates the function
})
})

关于express - 为什么我的所有 Firebase 云功能都超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46373551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com