如何通过firebase运行数据数组?

时间:2017-07-17 02:29:49

标签: javascript html arrays firebase

我的数据结构如下 enter image description here

我用[19777873,53399293]

var dbRef = firebase.database().ref().child('Agents').child(newarray[i]); dbRef.on('value', snapshot => { firebase.auth().onAuthStateChanged((user) => { if (user) { database = firebase.database(); console.log("Testing if the array values are here \n" + newarray); // var dbRef = firebase.database().ref().child('Agents').child(newarray[i]); dbRef.on('value', newAgents, errData); } }) }

新代理功能

function newAgents(data) { 

    var container = document.getElementById("team"); 
    container.innerHTML = '';

    data.forEach(function(AgentSnap) { // loop over all jobs
        var key = AgentSnap.AgentID;
        console.log(AgentSnap.key);
        var Agents = AgentSnap.val();
        var AgentCard = `
                <div class= "profilepics" id="${key}">
                <figure ><img src=${Agents.profilepicurl}><figcaption>${Agents.Fname}</figcaption></figure>
                </div>
            `;

        container.innerHTML += AgentCard;
    })
}

我现在遇到的问题是正在显示图像(来自{Agents.profilepicurl}),并且未显示名称(来自{Agents.Fname})。而不是它显示的名称&#34; undefined&#34;并且控制台中没有显示错误。我做错了什么,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在代码的前几行中发生了一些奇怪的事情。您正在设置“on”侦听器两次(忽略第一个侦听器的结果快照),并且您正在等待身份验证并设置数据库对象而不使用它。我并不完全确定你想要达到的目标,但这会有效吗?这是我认为您正在尝试使用当前代码的简化版本:

console.log("Testing if the array values are here \n" + newarray);

firebase.auth().onAuthStateChanged((user) => {
    if (user) {
        document.getElementById("team").innerHTML = '';

        database = firebase.database();

        for (agentId of newarray) {
            var dbRef = database.ref().child('Agents').child(newarray[i]);
            dbRef.on('value', newAgents);
        }
    }
})

function newAgents(AgentSnap) { 
    var container = document.getElementById("team"); 

    var key = AgentSnap.AgentID;
    console.log(AgentSnap.key);
    var Agent = AgentSnap.val();
    var AgentCard = `
                <div class= "profilepics" id="${key}">
                <figure ><img src=${Agent.profilepicurl}><figcaption>${Agent.Fname}</figcaption></figure>
                </div>
            `;

        container.innerHTML += AgentCard;
    }