写入数据库的Firebase cloud函数多次写入且从不返回

写入数据库的Firebase cloud函数多次写入且从不返回,firebase,google-cloud-functions,Firebase,Google Cloud Functions,我正在尝试创建一个云函数来写入firebase db。应该很简单。我想写一封200美元的回信。他们给出的示例在then回调中进行了重定向,但我不想重定向。不幸的是,我的函数无限期挂起,并将相同的消息写入数据库3,4,5,6次 我敢肯定我的报税表做得不对。我试图从当时的回调返回res.status=200,但也没有成功 这就是我目前拥有的: exports.createEvent = functions.https.onRequest((req, res) => { const na

我正在尝试创建一个云函数来写入firebase db。应该很简单。我想写一封200美元的回信。他们给出的示例在then回调中进行了重定向,但我不想重定向。不幸的是,我的函数无限期挂起,并将相同的消息写入数据库3,4,5,6次

我敢肯定我的报税表做得不对。我试图从当时的回调返回res.status=200,但也没有成功

这就是我目前拥有的:

exports.createEvent = functions.https.onRequest((req, res) => {
    const name = req.query.name;
    const description = req.query.description;
    const location = req.query.location; //json? lat/lng, public,
    const date = req.query.date;

    // Push the new message into the Realtime Database using the Firebase Admin SDK.
    return admin.database().ref('/Event')
        .push({name : name, description : description, location : location, date : date});
});

我建议您观看关于云函数()的官方视频系列,特别是关于承诺的第一个视频,标题为“学习云函数中带有HTTP触发器的JavaScript承诺(Pt.1)”

您将看到,对于HTTTS云功能,您必须向客户端发送响应(8:50观看视频)

因此,对代码的以下修改应该可以做到这一点:

exports.createEvent = functions.https.onRequest((req, res) => {
    const name = req.query.name;
    const description = req.query.description;
    const location = req.query.location; //json? lat/lng, public,
    const date = req.query.date;

    // Push the new message into the Realtime Database using the Firebase Admin SDK.
    admin.database().ref('/Event')
        .push({name : name, description : description, location : location, date : date})
        .then(ref => {
           res.send('success');
        })
        .catch(error => {
           res.status(500).send(error);
        })
});