【问题标题】:Get return values from firebase functions?从firebase函数获取返回值?
【发布时间】:2017-12-14 04:50:17
【问题描述】:

我正在尝试从 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()]);
}) 

结果和以前一样。

【问题讨论】:

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


    【解决方案1】:

    HTTPS 类型函数不返回 Promise,因此您不应将它们声明为异步。 (但是,所有其他类型的 Cloud Functions确实要求您为它们执行的任何异步工作返回 Promise。)

    HTTPS 类型的函数必须向客户端返回结果才能终止函数。这就像使用res.send()documentation 中描述的任何方法一样简单。这并不是说您不应该在函数中使用 Promise 来等待异步工作完成 - 您只是不要从函数中返回一个。

    【讨论】:

    • 好吧,那我该如何完成我想做的事情呢?
    • 如我的回答中所述,使用res.send() 向客户发送回复。有很多示例代码。 github.com/firebase/functions-samples
    猜你喜欢
    • 2021-10-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 2021-12-24
    • 2018-04-09
    • 1970-01-01
    相关资源
    最近更新 更多