Проблема записи данных в базу данных Firebase - PullRequest
0 голосов
/ 22 января 2020

У меня проблемы с сохранением некоторых данных в базе данных 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

Как код должен работать: для каждого дочернего элемента (начиная с "ascia1 ") из" prenotazioni "следует проверить, если" ausiliaria "== false, а затем, если дочерние элементы" emailAlunno "и" nomeAlunno "равны" ". Если это так, то он присваивает значения «window.mailGenitore» для «emailAlunno» (на фотографии значение «kalihacking.gmail.com») и «dropdownPlaceholder. html ()» для «nomeAlunno» (в фото значение "Алессандро Айардо"). Затем он устанавливает «ausiliaria» = true, поэтому, когда код повторяется для следующего ребенка (например, «fasia2»), он не повторяет инструкции, избегая напрасного перезаписи другого ребенка. Но проблема в том, что в начале каждого цикла «ausiliaria» всегда ложна, даже если в конце предыдущего цикла алгоритм устанавливает ее в ложь. Но это не единственная проблема. Он устанавливает только значение «emailAlunno» для первых трех детей (Fascia1, Fascia2, Fascia3), в то время как (как и у 4-го ребенка) он также должен присваивать значение «NomeAlunno».

Это сложно, Я знаю, поэтому я предлагаю вам задать мне каждый вопрос, который может добавить полезную информацию. Большое спасибо!

Редактировать: Если я добавлю еще одного дочернего элемента "Fascia5", он устанавливает только значение "emailAlunno" для первых 4 детей (Fascia1, Fascia 2, Fascia 3, Fascia 4), а "Fascia5.nomeAlunno" и "ascia5.emailAlunno "компилируются оба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...