无法使用 Firebase 更新我的数组或状态 - React Native

Cant update my array or state using Firebase - React Native

我在开发我的应用程序时遇到了一些困难。到目前为止,我能够连接到 Firestore 数据库并获取我的文档。我的计划是从每个文档中获取数据并将其存储在一个数组中。从那里我会展示它。

我遇到的问题是第一次渲染的结果不会将元素添加到数组中。 DATA.push() 方法有效但它没有保存在此 forEach 循环之外? 谢谢!

常量数据是存储文档引用的位置。

const DATA = []是数组。

const [data, setdata]= useState([{}]);

useEffect(() => {
  const getUsers = async () => {
    const data = await getDocs(usersCollectionRef);
    data.forEach(doc =>{

      DATA.push({id: doc.id, title: doc.data().Type, status: doc.data().status, location: doc.data().Location, type: doc.data().Type, injured: doc.data().Injured, collar: doc.data().Collar, color: doc.data().Colour })
    
    })
    
  };

  getUsers();
  console.log(dataNew);
 
}, []);
const DATA = [];

您可以只映射数组中所有文档的数据,将其设置为状态并呈现它。尝试重构代码,如下所示:

const [data, setData]= useState([]);

useEffect(() => {
  const getUsers = async () => {
    const snapshot = await getDocs(usersCollectionRef);

    const data = snapshot.docs.maps(d => ({ id: d.id, ...d.data() }))
    console.log(data);

    setData(data);
  };

  getUsers();
}, []);


return(
  <div>
    { 
      data.map((d) => {
        <p>{ d.id }</p>
      })
    }
  </div>
)