Я использую ловушку реагирования useEffect, и внутри этой ловушки я извлекаю данные в foreach из firebase, здесь нет ничего странного, и, похоже, это работает.
Я хочу дождаться foreach и запросов назакончить, так что мой массив будет построен, и я могу использовать его в следующем коде. Но, похоже, мой код не ждет, прежде чем продолжить (console.log внутри foreach отображается последним в моей консоли).
useEffect(() => {
const unsubscribe = firebase
.locations()
.once('value')
.then(async snapshot => {
if (snapshot.val() !== null) {
const locationObject = snapshot.val()
const userInformation = []
await Object.keys(locationObject).forEach(element => {
firebase.user(element).once('value', userSnapshot => {
if (userSnapshot.val() !== null) {
console.log('inside location')
userInformation.push({
userId: 1,
name: userSnapshot.val().username
})
}
})
})
console.log('usrInfo', userInformation)
}
})
})
Что я здесь не так делаю? Любая помощь будет оценена!