2017-08-10 36 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

它的工作,感謝捆綁爵士:)致敬 –