2017-08-10 37 views
0

来自Firebase DB的用户正在填充动态用户列表。但是,当任何用户的值发生变化时,它并不反映在客户端,因为它没有监听器。动态列表firebase的实时侦听器 - Javascript

//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 

如果状态被改变为一个用户,它不会对客户端反映,直到我刷新页面。

这就是我试图让enter image description here

因此,如果任何用户在DB状态改变应该改变类的DIV切换网络信号。 (灰色或绿色)

基本上实时变量不起作用,但刷新它的作品。

回答

1

您应该能够使用child_changed事件来监听用户数据库的更改。然后,您可以为div添加一个ID,以便您可以选择已更改的ID并更新该类。 这个效果:

var ref = firebase.database().ref("users"); 

ref.on('child_changed', function(snapshot){ 
var changedUser = snapshot.val(); 
document.getElementById(changedUser.id).classList.toggle('active'); 
} 
+0

它的工作,感谢捆绑爵士:)致敬 –