Google Firebase功能 - 执行HTTP请求时超时

时间:2018-04-26 18:30:20

标签: node.js firebase google-cloud-functions

所以我正在尝试创建一个简单的代理(我认为这是正确的词)并且我已经提出了一些在本地工作正常的代码。我可以称之为'firebase serve --only functions',功能正常,我得到了预期的结果。现在,当我部署相同的代码时,尝试调用它只是超时。我不明白为什么,所以我希望能得到一些帮助。

以下是代码:

//Variables
const functions = require('firebase-functions');
const express = require('express');
const cors = require('cors');
const request = require('request');

//App
const app = express();
app.use(cors({ origin: true }));

//Endpoints
app.get('/**', function(req, res) {
    request('https://example.com' + req.url, function(err, proxyRes, body) {

        //Err
        if (err) {
            res.send('Error: ' + err.code);
            return
        }

        //Res
        res.status(200).send(body);
    });
});

//Functions
exports.proxy = functions.https.onRequest(app);

1 个答案:

答案 0 :(得分:1)

如果HTTP函数不发送响应,它们将超时。这意味着您的request()可能会失败,并且它可能会失败,因为在免费的Spark付款计划中,您无法向Google无法完全控制的服务发出传出请求。

您的函数应在所有条件下发送响应以避免超时。这意味着您应该始终检查错误。