Надеюсь, вы все в безопасности.
Поэтому я пытаюсь получить все сообщения друзей текущего пользователя, но это не работает, я всегда получаю пустой массив, это как функция отправить массив в ответ, прежде чем использовать все l oop.
Итак, что я делаю, это
получение всех друзей текущего пользователя
отображение всех его друзей, чтобы получить все сообщения каждого из друзей
Затем я сопоставляю все его сообщения и пу sh каждого сообщения в массиве
Наконец, я хочу, чтобы функция отправляла массив, содержащий каждый пост, когда все l oop закончились, но это не работает, я всегда получаю пустой массив , Я король новичка в обещании и асинк / жду волка, но я не понимаю его.
Функция выглядит следующим образом
exports.getFollowerPost = async (req, res) => {
const id_user = req.params.userUid;
let friendsReference = db.collection('Friends').doc(id_user);
let data = [];
await friendsReference.get().then((result) => {
if (!result.exists) {
console.log('No such document!');
res.send('no docs exist')
}
else {
let friends = result.data();
let friendsOfUser = friends.follow;
friendsOfUser.map((follow) => {
let postUser = db.collection('Post').doc(follow);
postUser.get().then(item => {
const eachPost = item.data().post;
eachPost.map(eachPostUser => {
data.push(eachPostUser);
console.log("add post")
})
}).catch(error => {
console.log(error)
})
})
}
})
.catch(error => {
res.status(400).send(error)
})
res.send(data) // always send a empty array ? why
}