动态列表firebase-Javascript的实时侦听器
正在使用firebase DB中的用户填充动态用户列表。但当任何用户的任何值被更改时,它不会反映在客户端,因为它并没有监听器动态列表firebase-Javascript的实时侦听器,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,正在使用firebase DB中的用户填充动态用户列表。但当任何用户的任何值被更改时,它不会反映在客户端,因为它并没有监听器 //Loop for All Users var anotherUserId = snapshot.key; var ref = firebase.database().ref("users/"+anotherUserID); ref.on('value', function(snapshot) { var obj = snapshot.val(); li +
//Loop for All Users
var anotherUserId = snapshot.key;
var ref = firebase.database().ref("users/"+anotherUserID);
ref.on('value', function(snapshot) {
var obj = snapshot.val();
li += ' <div class="contacts-container '+obj.status+'">';
li += ' <h3>'+obj.fname+' '+obj.lname+'</h3>';
});
//Loop Ends
//所有用户的循环
var anotherUserId=snapshot.key;
var ref=firebase.database().ref(“users/”+另一个userid);
参考on(值),功能(快照){
var obj=snapshot.val();
li+='';
li+=''+obj.fname+''+obj.lname+'';
});
//环端
如果一个用户的状态已更改,则在刷新页面之前,它不会反映在客户端
这就是我想做的
因此,如果任何用户在DB中的状态发生更改,则应更改DIV中的类以切换在线信号。(灰色或绿色)
基本上,实时变量不起作用,但使用refresh时它会起作用。您应该能够通过
child\u changed
事件监听对用户数据库的更改。然后,您可以将一个id添加到div to,以便选择更改的id并更新该类。
大意如下:
var ref = firebase.database().ref("users");
ref.on('child_changed', function(snapshot){
var changedUser = snapshot.val();
document.getElementById(changedUser.id).classList.toggle('active');
}
它成功了,谢谢你,先生:)敬礼