В моем веб-приложении есть 2 типа пользователей: Учителя и Ученики
Учителя:
- может создавать классные комнаты с уникальным идентификатором класса
- может просматривать своих учеников в каждом созданном им классе
Учащиеся
- могут присоединиться к классной комнатесозданный учителем с использованием идентификаторов классов
- может просматривать одноклассников из каждого, к кому он / она присоединился
Для Учитель Я использовал эти коды для создания классов:
function classcreation(q)
{
var usuid = generateId();
var myClasses={};
myClasses.TheClass = document.getElementById('classroomName').value;
myClasses.Teacher = user.displayName;
myClasses.TeacherID = user.uid;
myClasses.ClassID = usuid;
fbclass.child(user.uid).push().set(myClasses);
}
И эти коды для просмотра каждого user.teachers создали классные комнаты:
var userRef = firebase.database().ref().child('Classes' + '/' + user.uid);
userRef.on('child_added', function(data)
{
var roomNames = data.val().TheClass;
var Studentx = data.val().TheStudents;
var classD = data.val().ClassID;
var ul = document.createElement('ul');
document.getElementById('myList').appendChild(ul);
var li = document.createElement('li');
ul.appendChild(li);
Object.keys(roomNames).forEach(function(key)
{
li.innerHTML += '<span
onclick="clickDone(this)">'+roomNames[key]+'</span>
<ul style="display:none"><li>Class Id :
'+classD+'</li><li>Students : '+Studentx+'</li>
</ul>';
});
});
Я попытался использовать эти коды для user.students, чтобы присоединиться к классу
function addclass() {
var addclassID = document.getElementById("classroomID").value;
var checkclassID = firebase.database().ref().child('Classes' + '/' +
user.uid);
userRef.on('child_added', function(data)
{
var studentx = data.val().TheStudents;
var clazzID = data.val().ClassID;
Object.keys(clazzID).forEach(function(key)
{
if(clazzID[key] == addclassID) {
var myClass{};
myClass.Studentname= user.displayName;
checkclassID.child("MyStudents").set(myClass);
}
else
{
alert("Class doesnt exist!");
}
});
}}
IПоверьте, приведенные ниже коды неверны:
Object.keys(clazzID).forEach(function(key)
{
if(clazzID[key] == addclassID) {
var myClass{};
myClass.Studentname= user.displayName;
checkclassID.child("MyStudents").set(myClass);
}
Что я пропустил?Каким должен быть альтернативный способ / код для учеников присоединиться к определенному классу?
Изображение класса

Итак, под Classes находится user.uid, под пользователем.uid - это случайный идентификатор, отправляемый push (), под ним - информация о классе, такая как ClassID, Teacher, TeacherID и TheClass, который является именем класса.Если user.student успешно присоединился к классной комнате, MyStudents должны появиться на том же уровне информации: => ClassID, Teacher, TeacherID, TheClass, MyStudent.Согласно MyStudents, именно там должны быть размещены данные user.student после того, как он / она присоединился к классной комнате.
Для получения дополнительной информации просто прокомментируйте это ниже.Буду очень признателен за любую помощь.
JSON:
{
"Accounts" : {
"FykyhzEZjndylFj3BbCnPqoTGDo1" : {
"displayName" : "Dodong Advices",
"email" : "advicenidodong@gmail.com",
"status" : "Teacher"
},
}
"Classes" : {
"FykyhzEZjndylFj3BbCnPqoTGDo1" : {
"-LMpvlBl3mEazhxaJwqb" : {
"ClassID" : "6503-3503-6827",
"Teacher" : "Dodong Advices",
"TeacherID" : "FykyhzEZjndylFj3BbCnPqoTGDo1",
"TheClass" : "StackMates"
},
"-LMrfIBg8v-hj1k8X2Qf" : {
"ClassID" : "7583-2402-2757",
"Teacher" : "Dodong Advices",
"TeacherID" : "FykyhzEZjndylFj3BbCnPqoTGDo1",
"TheClass" : "asdasd"
},
"-LMrfMV1aw3YNA0PfooR" : {
"ClassID" : "8083-2712-3347",
"Teacher" : "Dodong Advices",
"TeacherID" : "FykyhzEZjndylFj3BbCnPqoTGDo1",
"TheClass" : "HAHAHAHA"
}
}
}
}
JSON, который я пытаюсь выполнить: ps: я добавилновый ученик
{
"Accounts" : {
"FykyhzEZjndylFj3BbCnPqoTGDo1" : {
"displayName" : "Dodong Advices",
"email" : "advicenidodong@gmail.com",
"status" : "Teacher"
},
"HOgdSlTed9V8g0kSZjizgODMDOe2" : {
"displayName" : "Sasuke Uchiha",
"email" : "Sasuke@gmail.com",
"status" : "Student"
},
"yJif4ReTxCcGmo682xWSG3L5MKE3" : {
"displayName" : "Naruto Uzumaki",
"email" : "Naruto@gmail.com",
"status" : "Student"
},
"yo9hQLNUtOhSVn9xEhBT7uDI72y1" : {
"displayName" : "Itachi Uchiha",
"email" : "Itachi@gmail.com",
"status" : "Teacher"
}
},
"Classes" : {
"FykyhzEZjndylFj3BbCnPqoTGDo1" : {
"-LMpvlBl3mEazhxaJwqb" : {
"ClassID" : "6503-3503-6827",
"Teacher" : "Dodong Advices",
"TeacherID" : "FykyhzEZjndylFj3BbCnPqoTGDo1",
"TheClass" : "StackMates"
},
"-LMrfIBg8v-hj1k8X2Qf" : {
"ClassID" : "7583-2402-2757",
"Teacher" : "Dodong Advices",
"TeacherID" : "FykyhzEZjndylFj3BbCnPqoTGDo1",
"TheClass" : "OverFlowers"
},
"-LMrfMV1aw3YNA0PfooR" : {
"ClassID" : "8083-2712-3347",
"Teacher" : "Dodong Advices",
"TeacherID" : "FykyhzEZjndylFj3BbCnPqoTGDo1",
"TheClass" : "CodeHard"
}
},
"yo9hQLNUtOhSVn9xEhBT7uDI72y1" : {
"-LMw39kVqsi5sYbudFSk" : {
"ClassID" : "3514-2160-0317",
"Teacher" : "Itachi Uchiha",
"TeacherID" : "yo9hQLNUtOhSVn9xEhBT7uDI72y1",
"TheClass" : "Akatsuki",
"MyStudents" : {
"HOgdSlTed9V8g0kSZjizgODMDOe2" : {
"StudentName" : "Sasuke Uchiha"
}
}
},
"-LMw3A_hP2vkKyaowt8J" : {
"ClassID" : "7647-8387-3883",
"Teacher" : "Itachi Uchiha",
"TeacherID" : "yo9hQLNUtOhSVn9xEhBT7uDI72y1",
"TheClass" : "Konoha",
"MyStudents" : {
"HOgdSlTed9V8g0kSZjizgODMDOe2" : {
"StudentName" : "Sasuke Uchiha",
"yJif4ReTxCcGmo682xWSG3L5MKE3" : {
"StudentName" : "Naruto Uzumaki"
}
}
}
}
}
}
}
Результат кода мистера Фрэнка
{
"Accounts" : {
"FykyhzEZjndylFj3BbCnPqoTGDo1" : {
"displayName" : "Dodong Advices",
"email" : "advicenidodong@gmail.com",
"status" : "Teacher"
},
"HOgdSlTed9V8g0kSZjizgODMDOe2" : {
"displayName" : "Sweet Macaroni",
"email" : "Sweetm@gmail.com",
"status" : "Student"
}
},
"Classes" : {
"FykyhzEZjndylFj3BbCnPqoTGDo1" : {
"-LMpvlBl3mEazhxaJwqb" : {
"ClassID" : "6503-3503-6827",
"Teacher" : "Dodong Advices",
"TeacherID" : "FykyhzEZjndylFj3BbCnPqoTGDo1",
"TheClass" : "StackMates"
},
"-LMrfIBg8v-hj1k8X2Qf" : {
"ClassID" : "7583-2402-2757",
"Teacher" : "Dodong Advices",
"TeacherID" : "FykyhzEZjndylFj3BbCnPqoTGDo1",
"TheClass" : "GoogleHub"
},
"7583-2402-2757" : {
"MyStudents" : {
"HOgdSlTed9V8g0kSZjizgODMDOe2" : {
"Studentname" : "Sweet Macaroni"
}
}
}
}
}
}