getChatByUid(uid) {
//ref на все комнаты/чаты пользователя
const userRoomsRef = db.ref('users').child(this.auth.uid).child('rooms');
let roomExists = false;
//получаем все комнаты и итерируем "room in rooms"
userRoomsRef.once('value', rooms => rooms.forEach(room => {
//получаем всех пользователей в комнате
this.getRoomUsers(room.key).then(users => {
//итерируем
for (var user in users) {
// если находим пользователя в текущей комнате значит новую создавать не надо
if (users.hasOwnProperty(user) && user === uid) {
//просто переключаемся на текущую комнату и пишем в переменную что комната существует
this.currentRoom = room.key;
roomExists = true;
}
}
})
})
//тут главная проблема, этот код выполнится раньше предыдущего блока
// и будет всегда создавать новую комнату
if ( !roomExists ) { this.createRoom(uid) };
//Двигать этот блок вверх тоже не получается он всеравно выполняется до всех итераций.
);
}
Посоветуйте пожалуйста, что тут можно сделать, что-то голову всю сломал.