Firebase 云功能继续运行
我们有一个Firebase功能,可在24小时后删除项目。该函数可以工作,但是,链接到该函数的网页一直在运行,因此我猜该函数处于一个无休止的循环中。有没有办法解决这个问题 这是我们的职能: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
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");
});
});
});