итерация в firebase с использованием языка Javascript - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть веб-приложение, связанное с базой данных Firebase Realtime, в базе данных у каждого пользователя есть идентификатор, и есть несколько узлов, каждый узел содержит день или более, а также список задач и времени в приложение пользователь выбирает день, и на основе этого выбора приложение должно извлечь узел, который содержит этот день и представляет задачи этого дня, например, когда пользователь выбирает воскресенье, приложение представит задачи воскресенья, а если Воскресенье не существует в базе данных, приложение представит задачи на следующий день, то есть понедельник, а если понедельник не существует, то вторник и так далее. Может ли кто-нибудь помочь мне написать код, используя javascript язык?

 {
  "user" : {
    "aLgjXhJReKX2dtMpBVotfnPpDO12" : {
      "To Do list" : {
        "-M0oDtBT2HX_8BQHzzcp" : {
          "Days" : "Wed",
          "Tasks" : {
            "test" : "",
            "test1" : "",
            "test2" : ""
          },
          "Time" : "8:00 AM - 12:00 PM"
        },
        "-M0oElio_v77Zy7qK6_4" : {
          "Days" : "Sun Mon",
          "Tasks" : {
            "test" : "",
            "test1" : "",
            "test2" : ""
          },
          "Time" : "10:00 AM - 3:00 PM"
        },
        "-M0oJplF7q2QA3N9T-CO" : {
          "Days" : "Fri",
          "Tasks" : {
            "test" : "",
            "test1" : "",
            "test2" : ""
          },
          "Time" : "1:00 PM - 8:00 PM"
        }
      }
    }
  }
}

Это моя попытка получить доступ к точному дню, который выбрал пользователь, и он работает отлично, но у меня есть проблемы с доступом к следующему дню ( который присутствует в базе данных) в случае, если точный день отсутствует в базе данных, я попытался указать другое условие if (deepSnap1.val (). includes (nextday)) {...}, но это не сработало, как ожидалось

<script language="javascript">


firebase.database().ref().child('users').child(userID).once("value", function(snapshot) {
//console.log("snapshot key: " + snapshot.key);
snapshot.forEach(function(childSnapshot){

childSnapshot.forEach(function(deepSnap){
  var key = childSnapshot.key;
  //  console.log("child snapshot key: " + key); // autoID
deepSnap.forEach(function(deepSnap1){ // Days, Tasks, Time

   if (deepSnap1.key == 'Days'){
     if (deepSnap1.val().includes(day)){
         selectedDay = deepSnap1.val();



         firebase.database().ref().child('users').child(userID).child('To Do list').child(key).child('Time').once("value", function(snapshot1) {
         selectedTime = snapshot1.val()

       firebase.database().ref().child('users').child(userID).child('To Do list').child(key).child('Tasks').once("value", function(snapshot2) {
       snapshot2.forEach(function(childSnapshot2){
       var key3 = childSnapshot2.key;
       var val3 = childSnapshot2.val();
       if (key3 == 'test'){
       task1 = val3;
     }
       if (key3 == 'test1'){
         task2 = val3;
       }
       if (key3 == 'test2'){
         task3 = val3;
       }

       //-------------------------------------
      upload(selectedDay, selectedTime, task1, task2, task3);
     });
     });
   });
   });
       // ----------------------------------------

                 });
               });
               });
             }
   }


</script>

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