Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 云功能继续运行_Firebase_Firebase Realtime Database_Google Cloud Functions - Fatal编程技术网

Firebase 云功能继续运行

Firebase 云功能继续运行,firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,我们有一个Firebase功能,可在24小时后删除项目。该函数可以工作,但是,链接到该函数的网页一直在运行,因此我猜该函数处于一个无休止的循环中。有没有办法解决这个问题 这是我们的职能: exports.delete = functions.https.onRequest((req, res) => { const currentTime = new Date().getTime(); const dayAgo = currentTime - 86400000; ref.child('t

我们有一个Firebase功能,可在24小时后删除项目。该函数可以工作,但是,链接到该函数的网页一直在运行,因此我猜该函数处于一个无休止的循环中。有没有办法解决这个问题

这是我们的职能:

exports.delete = functions.https.onRequest((req, res) => {
const currentTime = new Date().getTime();
const dayAgo = currentTime - 86400000;

ref.child('testlijst')
    .orderByChild('tijd')
    .endAt(dayAgo)
    .once('value')
    .then(snap => {
       snap.forEach(c => {
          c.ref.remove();
       })
    });
});

您需要向客户端发送响应,以便在不超时的情况下终止HTTPS类型的函数。只有在函数中所做的工作完成后,才能执行此操作。这意味着你需要学习如何使用承诺

您需要收集c.ref.remove()返回的所有承诺,并等待它们全部完成,然后通过对客户端的响应终止函数:

ref.child('testlijst')
    .orderByChild('tijd')
    .endAt(dayAgo)
    .once('value')
    .then(snap => {
        const promises = [];
        snap.forEach(c => {
           const p = c.ref.remove();
           promises.push(p);
        })
        Promise.all(promises).then(result => {
            res.send("done");
        });
    });
});