У меня есть несколько постов, и я хотел бы получить их, если произойдут изменения, и показать их пользователям. Например, если кто-то редактирует свой пост, я показываю пост с правкой для пользователей без перезагрузки страницы.
У меня есть фид коллекции с идентификатором для постов. Я хотел бы получить от фида сообщений.
внутри фида foreach (который я получаю идентификатор сообщения) Я делаю следующее:
var post = firebase.database().ref('/posts/' + value).orderByKey(); // value is posts id ref
after that I have this
promises.push(new Promise((res, rej) => {
post.on('value', function(snapshot2) {
var obj = Object.assign(snapshot2.val(), { key: snapshot2.key });
res(obj);
});
}));
});
let postsArray = await Promise.all(promises);
setPosts(prevPosts => {
return [
...prevPosts,
...Object.keys(postsArray).reverse().map(key => ({
key: key, ...postsArray[key]
}))
];
Я думал, что я должен изменить вернуться, потому что таким образом он добавляет изменения, а не обновляет, и я также должен знать, является ли это обратным вызовом из firebase или пользователь получает сообщения, чтобы узнать, как вернуть данные.
Любые идеи, как вместо того, чтобы снова добавлять все сообщения, просто обновляйте сообщения новым контентом для пользователя?
Большое спасибо.