繁体   English   中英

如何使用 Firebase 将新数据推送到数组

[英]How to push new data to Array with Firebase

我在更新数组时遇到问题。 本质上,我有一个要在其上呈现复选框的项目列表。 当我 select 复选框时,数据库引用拉取连接到复选框的项目的字符串。 我可以从每个单独的项目中获取数据,但我的数组永远不会更新,它总是保持为空。 我基本上需要使用我按下复选框的每个附加列表项来更新数组。

  const onChangeValue = (Item) => {

    /*firebase.database()
      .ref('users/' + '/C Room' + '/' + Item.Id)
      .remove()
      .then(() => { })
      .catch((err) => {
        console.log(err);
      });*/
      const leadsRef = firebase.database().ref('users/' + '/C Room' + '/' + Item.Id);
      leadsRef.on('value', function(snapshot) {
          snapshot.forEach(function(childSnapshot) {
            const childData = childSnapshot.val();
          //console.log(childData)
           const checkboxData = childData
          //setcheckboxArray(childData)
        console.log(checkboxData)
          setTheArray(theArray => [...theArray, checkboxData]);
        
         
          });
          console.log(theArray)
      });

  }
pearl
-NBhaGshkMgGLbslqXZQ
rRs584c
C Room
drums
Array [
  "",
]

这些值一次只返回一个,它们不会添加到数组中。

永远不需要像你在这里做的那样在一个紧密的循环中多次调用它们。

要解决这个问题:

const leadsRef = firebase.database().ref('users/' + '/C Room' + '/' + Item.Id);
leadsRef.on('value', function(snapshot) {
    let arr = [];
    snapshot.forEach(function(childSnapshot) {
      arr.push(childSnapshot.val());
    });
    setTheArray(arr);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM