渲染Firebase JSON对象反应

时间:2019-11-21 05:08:24

标签: javascript arrays json reactjs object

Firebase JSON console.log()

我已经像这样从firebase提取了一些数据:

getUserData = () => {
    database
      .ref('orders/')
      .once('value')
      .then(function(snapshot) {
        const exists = snapshot.val() !== null;

        if (exists) {
            let data = snapshot.val();
            console.log("DATA IS: ", data);             
        }
    });
}

该图显示了控制台日志。我试图在反应中呈现表上的所有内容。我在遍历数据时遇到麻烦。我需要先将其转换为数组吗?

我希望呈现item_id,displayName,email和所有订单信息中的所有内容

3 个答案:

答案 0 :(得分:0)

首先,您需要转换为数组,然后可以使用map检索数据。 例如: 如果数据为数组形式,则可以映射对象。 希望对您有帮助。

data.map((detail)=>{
console.log(detail.email);
})

答案 1 :(得分:0)

您可以从函数中获取数据,

function getUserData = () => {
    database
      .ref('orders/')
      .once('value')
      .then(function(snapshot) {
        const exists = snapshot.val() !== null;

        if (exists) {
            let data = snapshot.val();
            //console.log("DATA IS: ", data);   
            return data;
        }
    });
}


var data = getUserData();

data.forEach(function(item){
    console.log(data.email);
    console.log(data.img);
    console.log(data.name);
    console.log(data.section);
} )

答案 2 :(得分:0)

新的javascript提供Object.values()。SO,您将数据转换为如下所示的数组并使用。

getUserData = () => {
        database
          .ref('orders/')
          .once('value')
          .then(function(snapshot) {
            const exists = snapshot.val() !== null;

            if (exists) {
                let data = snapshot.val();
                console.log("DATA IS: ", data);        
                //use Object.values(data)
                const dataArray = Object.values(data);
                //now you can map your dataArray 
               
            }
        });
    }
    
    
    

希望这会对您有所帮助。让我知道您是否有任何问题。