Получите все документы из Firestore Collection с помощью функций Firebase - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь собрать все документы в одну коллекцию с именем «duplic_tasks» в моей функции Firebase.

Я попытался использовать следующий код: Можно ли получить все документы в Firestore Облачная функция? , но мне кажется, что это не работает. Я пытаюсь получить информацию, чтобы я мог обновить каждый документ в коллекции, чтобы установить для одного поля значение false. У меня есть следующий код:

exports.finishedUpdate = functions.pubsub.schedule('0 3 * * *').timeZone('Europe/Amsterdam').onRun((context) => {

//  This is part of the above mentioned stack question
    var citiesRef = database.collection('repeated_tasks');
    const snapshot = citiesRef.get();
    snapshot.forEach(doc => {
      console.log(doc.id, '=>', doc.data());
    });

// A way to update all of the documents in the repeated_tasks collection has to be found

//  This part works, for only the two given document ids
    var list = ['qfrxHTZAJZTJDQpA83fjsM03159438695', 'qfrxHTZAJZQTpM3pA83fjsM0315217389'];

    for (var i = 0; i < list.length; i++) {
        database.doc('repeated_tasks/' + list[i]).update({'finished': false});
    }

    return console.log("Done");
})

Помощь очень ценится, поскольку я не могу нигде найти какую-либо связанную информацию, кроме страницы переполнения стека, которая не помогла. Я использую Node JS (Javascript) для установки функций.

1 Ответ

1 голос
/ 12 июля 2020

Используя синтаксис получения информации из Firestore, я также смог обновить его в функциях Firebase и смог обновить все, используя следующий код:

    const reference = database.collection('repeated_tasks/');
    const snapshot = await reference.where('finished', '==', true).get();
    if (snapshot.empty) {
        console.log('no matching documents');
        return;
    }

    snapshot.forEach(doc => {
        database.doc('repeated_tasks/' + doc.id).update({'finished': false});
    });
...