Чтение базы данных Firebase в реальном времени для глобальных чатов и чатов - PullRequest
0 голосов
/ 21 марта 2020

У меня есть работающая база данных 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 >&nbsp; </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);
}
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...