在将某些数据保存在Firebase数据库中时遇到麻烦。这是代码:
var ausiliaria = false;
DocentiRef.child(keyDocente + "/prenotazioni/").orderByKey().on("child_added", function(snapshot2) {
keyFascia = snapshot2.key;
if (ausiliaria == false) {
(function() {
if (snapshot2.val().emailAlunno != "" && snapshot2.val().nomeAlunno != "" ) {
//do nothing
} else {
DocentiRef.child(keyDocente + "/prenotazioni/"+ keyFascia).update({ emailAlunno: window.mailGenitore });
DocentiRef.child(keyDocente + "/prenotazioni/"+ keyFascia).update({ nomeAlunno: dropdownPlaceholder.html() });
ausiliaria = true;
}
}());
};
});
这是我们感兴趣的数据库部分的照片:
代码的工作方式:对于“ prenotazioni”的每个孩子(从“ fascia1”开始),应检查“ ausiliaria” == false,然后检查子孩子“ emailAlunno”和“ nomeAlunno”是否等于“”。如果是这样,则将值“ window.mailGenitore”分配给“ emailAlunno”(在照片中,值是“ kalihacking.gmail.com”),将“ dropdownPlaceholder.html()”分配给“ nomeAlunno”(在照片中值是“ Alessandro Aiardo”)。然后,它将“ ausiliaria” = true设置为true,这样,当为下一个孩子重复代码时(例如“ fascia2”),它就不会重复该指令,从而避免徒劳地覆盖另一个孩子。但是问题是:在每个周期的开始,“ ausiliaria”总是错误的,即使在上一个周期的末尾,算法将其设置为false。 但这不是唯一的问题。它只为前三个孩子(fascia1,fascia2,fascia3)设置“ emailAlunno”的值,而(像第四个孩子一样)为“ nomeAlunno”分配值。
这很复杂,我知道,所以我建议您问我每个可以添加有用信息的问题。非常感谢!
编辑:如果我添加另一个孩子“ fascia5”,则它仅为前四个孩子(fascia1,fascia2,fascia3,fascia4)设置“ emailAlunno”的值,而“ fascia5.nomeAlunno”和“ fascia5.emailAlunno”都被编译。