Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态列表firebase-Javascript的实时侦听器_Javascript_Firebase_Firebase Realtime Database - Fatal编程技术网

动态列表firebase-Javascript的实时侦听器

动态列表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 +

正在使用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 += '    <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');
}

它成功了,谢谢你,先生:)敬礼