Я создаю приложение чата с реагировать на родной и Firebase. Когда пользователь входит в систему, предыдущие сообщения должны загружаться при первом запуске, но он предоставляет пустые массивы для обещания сначала, а затем, когда я снова подключаюсь, он появляется ... Я использую перекус и мне нужно изменить код, чтобы увидеть чат Histroy (для обновления устройства). Как я могу загрузить при первом запуске?
редактировать: структура firebase
userName:
-rooms:
-otherUser:
-messages
-name
Код:
firebase.database().ref(`userName/rooms`).on('child_added', snapshot => callback(parse(snapshot)));;
const parse = snapshot => {
//console.log(snapshot);
const { name } = snapshot.val();
const { key: _id } = snapshot;
const rooms = {
_id,
name
};
return rooms;
};
И это происходит в моем использованииEffect:
const loadRequiredMaterials = async () => {
return new Promise(async (resolve, reject) => {
//var loadedRooms = [...rooms]
var loadedRooms = []
await on(oldRooms => {
loadedRooms = [oldRooms, ...loadedRooms]
});
await resolve([loadedRooms]);
})
}
if (firebase.auth().currentUser) {
console.log(firebase.auth().currentUser)
loadRequiredMaterials()
.then((result)=> {
console.log(result)
setRooms(result[0]);
})
}