Firebase 不';t从firestore加载数据

Firebase 不';t从firestore加载数据,firebase,Firebase,我已经为firestore创建了数据。但是它给出了空数组。它一次渲染两次,第一次是空数组,第二次是数据对象。我还使用了UseMoom。 以下是firestore的数据模型: 我的代码是: const [posts, setPosts] = useState([]); useEffect(() => { db.collection("posts").onSnapshot((snapshot) => snapshot.docs.map((doc) =&g

我已经为firestore创建了数据。但是它给出了空数组。它一次渲染两次,第一次是空数组,第二次是数据对象。我还使用了UseMoom。 以下是firestore的数据模型:

我的代码是:

   const [posts, setPosts] = useState([]);

useEffect(() => {
db.collection("posts").onSnapshot((snapshot) =>
  snapshot.docs.map((doc) => setPosts({ id: doc.id, data: doc.data() }))
);

},[])

试试这个解决方案。您必须将POST临时推送到函数内部的数组中,然后将该数组设置为
POST

const [posts, setPosts] = useState([]);

  function fetchPosts() {
    const docList = [];
    firebase
      .firestore()
      .collection("posts")
      .onSnapshot((snapshot) => {
        snapshot.forEach((doc) => {
          docList.push({
            id: doc.id
            data: doc.data()
          });
        });
        setPosts(docList);
      });
  }

  useEffect(() => {
    fetchPosts()
  }, [])