创建了一个聊天应用程序,我们使用Firebase进行实时通信。
有时,我注意到push()方法会拖移列表数据。我们可以在下图中看到:

javascript - Firebase push()方法可随机播放列表数据-LMLPHP

如果我们在上图中看到我只是想与某人交流,我在打个招呼时回复用户说的嘿,再次,我说我需要一些帮助,然后用户说,这就是我在这里的目的。我能为您提供什么帮助?在回复中,但如果我们在图片中看到用户回复,则首先出现。

它断断续续地发生,这就是为什么我不知道这个问题的原因。所以请有人帮我解决我该怎么做。

var pushMessageToFB = function(){
var chatMsgRef = db.child("chatMessages").child("gr1").child("ch_usr1_usr2");
var message = {
    type: "chat",
    content: data.messageText,
    timestamp: Date.now(),
    by: user.id
};
chatMsgRef.push(message, function(err){
    if (err){
        console.log('error occurred while pushing message to fb : err ' + JSON.stringify(err));
    }
});};
var loadChatMessages = function(){
var chatMsgRef = db.child('chatMessages').child("gr1").child("ch_usr1_usr2");
$scope.chatMessages = chatMsgRef.orderByKey().limitToLast(50);


};

最佳答案

不要将日期用于远程数据。在每台机器上都会略有偏移。 Use ServerValue.TIMESTAMP写入数据时,Firebase将转换为服务器的Unix纪元时间。这样可以确保客户之间订单的一致性。

您没有提供任何有关如何阅读或显示聊天消息的代码,但是由于您尝试按时间顺序显示它们,因此我假设您的查询使用。如果在编写消息时使用orderBy("timestamp"),则可以保证按照写入数据库的顺序进行排序。

关于javascript - Firebase push()方法可随机播放列表数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42540252/

10-08 21:57
查看更多