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