2017-08-10 11 views
0

ユーザの動的リストにfirebase DBのユーザが設定されています。しかし、ユーザーのいずれかの値が変更された場合、リスナーがないため、クライアント側に反映されません。ステータスは1人のユーザのために変更された場合、私はページを更新するまで動的リスト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 

、それはクライアント側には反映されません。

これは私がDB内の任意のユーザーのステータスは、それがオンライン信号をトグルするDIVでクラスを変更する必要が変更された場合、だから、enter image description here

を作成しようとしているものです。 (灰色または緑色)

基本的にリアルタイム変数は機能しませんが、リフレッシュすると機能します。

答えて

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

、それが働いたおかげAバンドル卿:)サルーテ –