首页 > 解决方案 > 如何在 react-native 中检索 firebase 数据

问题描述

我试图从 firebase 数据库中获取数据,我很好地获取了数据,但是当我尝试推送数组中接收到的所有项目时,我获得了一个数组,我无法像任何其他 javascript 数组一样迭代该数组。这是我的代码:

var li = [];
  
  useEffect(() => {
    firebaseDB
      .database()
      .ref("collection")
      .on("value", (data) => {
        let all = data;
        
        all.forEach((element) => {
          
          li.push(element.val());
        });
      });
  }, []);
  console.log(li);

当我这样做时console.log(li),我得到的li数组看起来对数据没问题,但是当我尝试对数组做一些事情时,例如如果我这样做console.log(li.length),它会打印0出数组中有多个项目。问题是我li的数组不像数组。请帮助我找出问题所在

标签: javascriptfirebasereact-native

解决方案


你不能像那样推送数据。试试这个代码。

    const [arr,setArr] = useState([]);
      

      useEffect(()=>{
      firebaseDB
      .database()
      .ref("collection")
      .on("value", (snapshot) =>{
        let data = [];
        snapshot.forEach((child)=>{
          data.push(child.val());
        })
       setArr(data);
      });
     
  },[])
   

推荐阅读