我们有一个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();
})
});
});
答案 0 :(得分:1)
您需要向客户端发送响应才能终止HTTPS类型功能而不会超时。只有在您在函数中完成的工作完成后,才应该这样做。这意味着您需要学习如何使用承诺。
您将需要收集c.ref.remove()返回的所有承诺,并等待所有承诺完成,然后通过对客户端的响应终止该函数:
void delete_last() {
Node *temp = head, *prev;
if (temp->next != NULL) {
free(head);
head = NULL;
return;
} else {
while (temp->next != NULL) {
prev = temp;
temp = temp->next;
}
free(temp);
prev->next = NULL;
return;
}
}