Как мне ждать выполнения всех запросов 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'});
}
Как мне последовательно выполнять все эти циклы? Начать ли выполнять следующий шаг только после предыдущего?