在Firebase DB中无法正确保存

时间:2017-12-24 12:16:36

标签: javascript firebase firebase-realtime-database



function saveDB()
{
var assmtEid=7;
var username="aashiquemd2212";
var myvar="14ca120";
    var ref2 = database.ref(username+'/course/'+myvar+'/ExerciseTable/'+assmtEid+'/');
    
    // var refe = database.ref(username+'/course/'+myvar+'/ExerciseTable');
    // refe.child(assmtEid).set({
    // Exid: assmtEid,
    // Ename: displayname,
    // Etotal: "20"
    // });
    var tb=document.getElementsByClassName("tbody")[0];
    var len=tb.rows.length;
    for(var l=0;l<len;l++)
    {
        var tno=l+1;
        var tnam=tb.rows[l].childNodes[0].childNodes[0].value;
        var tmark=tb.rows[l].childNodes[2].childNodes[0].value;
        console.log("**"+tno+"**"+tnam+"**"+tmark+"**");
        // ref2.child(tno).set({
        // cid:tno,
        // cname:tnam,
        // ctotal:tmark
        // });// criteria save
         var kn=document.getElementById("dtable"+l+"").rows.length;
         
         for(var lent=0;lent<kn;lent++)
         {
             var mtd1=lent+1;
             var mtd2=document.getElementsByClassName("tide")[l].rows[lent].childNodes[0].childNodes[0].value;
             var mtd3=document.getElementsByClassName("tide")[l].rows[lent].childNodes[1].childNodes[0].value;
            console.log("--"+mtd1+"--"+mtd2+"--"+mtd3+"--");
             // ref2.child(tno+"/"+mtd1).set({
             // did:mtd1,
             // dname:mtd2,
             // dmark:mtd3
             // });// descriptive save

         }
         console.log("#####################");
    }


}
&#13;
&#13;
&#13;

运行此代码时,它会正确显示控制台中的输出。但是当我删除注释行并运行代码时,它会插入额外的节点。我无法找到错误,导致此额外节点添加的原因。请帮我。 This shows properly on the console但是在删除注释行并运行时,它会为Firebase保存额外的节点。更新按钮会触发saveDB功能。 After clicking the update button.

1 个答案:

答案 0 :(得分:1)

Firebase实时数据库没有对数组的本机支持,因此它使用整数键来存储它们。看来这就是这里发生的事情。 尝试使用不同的密钥,例如k7而不是整数。