【问题标题】:how to retrieve firebase data in react-native如何在 react-native 中检索 firebase 数据
【发布时间】:2021-04-08 15:29:35
【问题描述】:

我试图从 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 数组的行为不像数组。请帮我找出问题所在

【问题讨论】:

    标签: javascript firebase react-native


    【解决方案1】:

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

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

    【讨论】:

    • 那行得通。但我必须在 on() 中设置 setArr(data);
    • 哎呀。对不起,我只是把它弄错了。
    【解决方案2】:

    使用 forEach 关键字进行迭代。它有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      • 2019-03-25
      • 2018-07-19
      • 2019-08-06
      相关资源
      最近更新 更多