从firebase函数获取返回值?

时间:2017-12-13 20:45:41

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

我正在尝试从firebase函数请求中获取json,这是我正在尝试的内容:

export const listener = functions.https.onRequest(async (req, res) => {
    return {foo:"bar"}
}) 

不幸的是,当我在chrome中找到相应的url时,这会产生超时但没有结果,我也尝试过:

function getDude(){
    return {dude:"dude"};
}

export const listener = functions.https.onRequest(async (req, res) => {
    return Promise.all([getDude()]);
}) 

与之前的结果相同。

1 个答案:

答案 0 :(得分:4)

HTTPS类型函数不会返回promise,因此您不应将它们声明为异步。 (但是,所有其他类型的云功能执行要求您为其执行的任何异步工作返回承诺。)

HTTPS类型函数有义务将结果返回给客户端以终止该函数。这就像使用res.send()documentation中描述的任何方法一样简单。这并不是说你不应该在函数中使用promises来等待异步工作完成 - 你只是不要从函数中返回一个。