尝试通过使用JavaScript聆听Firebase中的更改进行实时刷新时遇到了一些问题。我试图做的是聊天系统。在与另一个用户开始新的聊天时,我将加载两个用户之间的所有聊天。
code
我的Firebase查询:
code
问题是上面的代码在实时'中不起作用。实时,如用户A发送给B时,无需手动刷新页面重新加载聊天记录,用户B应该能够查看来自用户A的最新消息。
上述代码仅在用户B手动刷新页面以再次从Firebase查询时才有效。
是否有从JavaScript到Firebase的轮询以检查更改?
谢谢!
答案 0 :(得分:1)
使用on value
事件自动获取新到达的消息。
问题是on value
将返回所有消息值而不是新消息值。
你需要存储时间戳和msg数据,
ref.on('value', function(snapshot){
//request data from firebase that having message-timestamp greater than last message-timestamp in previous `on-value` event
});`
要获取特定的消息,您需要使用firebase query
var ref= firebase.database().ref("users/msgtimestamp");
var query = ref.orderByChild('msgtimestamp'); //write query-logic to get only new message
query.on('value', function(snapshot) {
});
我希望我的回答能帮到你