Вы на самом деле очень близки с вашим ответом. Вы не использовали await в своей функции, поэтому не было смысла использовать его.
useEffect(() => {
const unsubscribe = firestore.collection('posts').onSnapshot((snapshot) => {
const posts = snapshot.docs.map(...)
setPosts(posts);
});
return () => {
unsubscribe();
};
}, []);
Если вам нужно было использовать asyn c, вы можете просто использовать замыкание, чтобы отписаться от рассылки. функция asyn c.
useEffect(() => {
let unsubscribe;
async function getSnapshot() {
unsubscribe = firestore.collection('posts').onSnapshot((snapshot) => {
const posts = snapshot.docs.map(...)
setPosts(posts);
});
}
getSnapshot();
return () => {
unsubscribe();
};
}, []);