Так что я в настоящее время занят чатом, который хранит все сообщения в Firebase и сразу же добавляет сообщение в сообщение. Проблема в том, что Firebase получает сообщения в определенном порядке, я добавляю к чат-боксу определенным образом, и когда я его обновляю, он снова меняется.Добавление сообщений в чат
function init_chatbox() {
$('.empty-chat').show();
ref.child("/chatboxes/{{ chatbox.pk }}/messages/").on("child_added", function (snapshot) {
$('.empty-chat').hide();
var object = snapshot.val();
var key = snapshot.key();
var name = "";
ref.child("https://stackoverflow.com/users/" + object['user_id'] + "/name").once('value', function(snapshot) {
name = snapshot.val();
var timestamp = object['timestamp'];
var message = object['message'];
extra_html = ' <a href="#/" class="remove" onclick="delete_message(\'' + key + '\')">(remove)</a><a href="#/" class="edit" onclick="load_modal(\'' + key + '\')">(edit)</a>';
$('ul.chat-messages').append('<li class="' + key +'"><p class="author"><span>' + name + '</span><span></span><span class="time" data-livestamp="' + timestamp + '"></span>' + extra_html + '</p><p class="message">' + message + '</p></li>');
});
});
Когда у меня есть такой код (с .append
), он показывает код, как это немедленно:
Kevin 2 hours ago (remove)(edit)
some message here
John 10 minutes ago (remove)(edit)
test
John 2 minutes ago (remove)(edit)
msg
Kevin few seconds ago (remove)(edit)
test
И когда я обновить страницу, сообщение будет самым верхним, как заказ должен быть. Вот что, я также пытался использовать .prepend
, но он просто дает еще один, который тоже не прав (публикует новое сообщение сверху, но при обновлении он отображает хороший порядок, но затем самое последнее сообщение сверху) ,
Я надеюсь, что кто-то может мне помочь с этим, пытаются решить эту проблему
Я действительно пробовал 'orderByChild()' в сочетании с '.append()', хотя он, кажется, остается неизменным (отображает правый порядок после обновления, добавляет новое сообщение в нижнее окно). Пробовал его с помощью .prepend() ', размещает новое сообщение сверху, но временную метку в неправильном порядке .. – dnsko