NodeJS Firebase ждать запроса - PullRequest
       5

NodeJS Firebase ждать запроса

1 голос
/ 24 февраля 2020

Как мне ждать выполнения всех запросов Firebase?

У меня есть массив пользовательских телефонов - array.

Шаг 1 : создать массив всех пользовательских телефонов и сгенерировать уникальный идентификатор билета. (randomStringIdent() - функция генерации линии)

var arrayTikets = {};
var AllArrayPhone = []
array.forEach(function(item, i, arr) {
    AllArrayPhone.push(item.stringValue)
    arrayTikets[item.stringValue]=randomStringIdent(50)
});

Шаг 2 : я разбиваю AllArrayPhone на 10 (поскольку Firebase не поддерживает более 10 условий). Я запрашиваю Firebase и создаю массив пользователей, которые находятся в базе данных.

var regusers = [];
const splitArray = AllArrayPhone.chunk(10);

for (const items of splitArray) {
    let usersRef = db.collection('users');
    let users = await usersRef.where('userphone', 'in', items);
    let userdocs = users.get();


    for (SingDoc of userdocs.docs) {
        regusers.push(SingDoc._fieldsProto.userphone.stringValue)
    }



    console.log("data pushed")
}

Шаг 3 : запись в Firebase результирующего массива из шага 2.

admin.firestore().doc(path).update({Users: regusers,Status: 1})

Шаг 4 : запись сгенерированных идентификаторов билетов с шага 1

for (var key in arrayTikets) {
    db.collection('events').doc(id).collection("tickets").doc(key).set({ticket:arrayTikets[key]});
}

Шаг 5 : запись в журнал уведомлений

for (item of regusers) {
    let DocRef = db.collection('notifications').doc(item);
     DocRef.update({notif.doc: 'NEW'});
}

Как мне последовательно выполнять все эти циклы? Начать ли выполнять следующий шаг только после предыдущего?

...