云功能一直在运行

时间:2017-09-19 16:55:33

标签: 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('testlijst')
    .orderByChild('tijd')
    .endAt(dayAgo)
    .once('value')
    .then(snap => {
       snap.forEach(c => {
          c.ref.remove();
       })
    });
});

1 个答案:

答案 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;
    }
}