在Firebase数据库中写入数据时遇到问题

时间:2020-01-22 18:13:29

标签: javascript firebase firebase-realtime-database

在将某些数据保存在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;                     
      }
    }());                   
  };                 
}); 

这是我们感兴趣的数据库部分的照片:

enter image description here

代码的工作方式:对于“ 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”都被编译。

0 个答案:

没有答案