У меня есть работающая база данных Firebase в реальном времени для глобальной комнаты чата со значением userSession по умолчанию = 'xxxxx'. Я хочу добавить дополнительные чаты с пользовательскими номерами комнат (которые называются userSession). Один пример комнаты "12345". Я попытался использовать переменную для второго ребенка, и она работает для глобального чата, но не обновляется, когда пользователь меняет комнаты. Я пытаюсь, чтобы программа создала моментальный снимок базы данных «сессий», а затем сравнила значение каждого sessions.key со значением userSession. Если есть совпадение, программа должна получить значения пользователя и сообщения из этого sessions.key.
Чат HTML:
<div class="chat">
<div class="chathead toggle" data-aquired="chatbody">CRACKED <i class="fas fa-comments"></i></div>
<div id="chatbody" class="hide">
<div id="chatmsgs"><p>User: Welcome to the Global Chat!</p></div>
<div id="chattxt">
<input type='text' id='chatmsg' maxlength="530" placeholder='Type a message...'>
</div>
<div > </div>
</div>
</div>
Глобальный чат JQuery:
firebase.database().ref().child("sessions").child(userSession).on('value', function (snapshot) {
var user = snapshot.val().name;
var mess = snapshot.val().message;
var chat = "<p>"+user+": "+mess+"</p>";
$('#chatmsgs').append(chat);
}, function (error) {
if (error) {
console.log("The read failed: " + error.code);
}})
JSON Экспорт файла из Firebase:
"sessions" : {
"12345" : {
"message" : "test",
"name" : "User"
},
"xxxxx" : {
"message" : "Let me know how you like the updates!",
"name" : "user"
}
}
Попытка:
firebase.database().ref().child("sessions").on('value', function (snapshot) {
snapshot.forEach(function (data) {
if (userSession == data.key) { // LINE 767 mentioned in DataSnapshot.forEach failed: 2 arguements vs 1.
var user = data.name;
var mess = data.message;
var chat = "<p>"+user+": "+mess+"</p>";
$('#chatmsgs').append(chat);
}
}, function (error) {
if (error) {
console.log("The session read failed: " + error.code);
}
})
}, function (error) {
if (error) {
console.log("The sessions read failed: " + error.code);
}
})