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;
运行此代码时,它会正确显示控制台中的输出。但是当我删除注释行并运行代码时,它会插入额外的节点。我无法找到错误,导致此额外节点添加的原因。请帮我。 但是在删除注释行并运行时,它会为Firebase保存额外的节点。更新按钮会触发saveDB功能。
答案 0 :(得分:1)
Firebase实时数据库没有对数组的本机支持,因此它使用整数键来存储它们。看来这就是这里发生的事情。
尝试使用不同的密钥,例如k7
而不是整数。