Firebase - 统计在线用户

MrE*_*MrE 17 firebase

我尝试使用presence它来显示元素中的总连接用户.我无法弄清楚在哪里看.我做了类似的事情:

var dataUlist = new Firebase('https://<url>.firebaseio.com/.info/connected');
dataUlist.on('value', function(snap) {
    console.log(snap);
});
Run Code Online (Sandbox Code Playgroud)

试着看看我是否能找到有用的东西,但是(我有点期待)我无法理解数据.

有没有办法帮助我做什么?获取已连接用户的总数,例如.在控制台或元素中回显它?或者也许如何获取授权用户列表和未授权用户?

编辑:我想用英语拼写我的拼写,我不是美国人.谢谢.

Ana*_*ant 30

.info/connected只会返回有关当前客户端是否已连接的信息.为了保持存在计数,您需要通过存储每个用户的存在信息并使用来创建计数器setOnDisconnect().例如:

var listRef = new Firebase("https://<url>.firebaseio.com/presence/");
var userRef = listRef.push();

// Add ourselves to presence list when online.
var presenceRef = new Firebase("https://<url>.firebaseio.com/.info/connected");
presenceRef.on("value", function(snap) {
  if (snap.val()) {
    // Remove ourselves when we disconnect.
    userRef.onDisconnect().remove();

    userRef.set(true);
  }
});

// Number of online users is the number of objects in the presence list.
listRef.on("value", function(snap) {
  console.log("# of online users = " + snap.numChildren());
});    
Run Code Online (Sandbox Code Playgroud)

  • 乐于帮助!我的同事指出了两个更正:1.`onDisconnect()`调用应该在`.info/connected`回调中,因为我们在重新连接时必须再次调用它.2.我们有一个名为`numChildren()`的方便函数来返回对象中的键数!我已更新上面的代码段以反映这一点. (2认同)
  • 这似乎有点不可扩展.有没有办法让一个整数回来? (2认同)