如何使用firebase实时显示关注者数量?

时间:2016-04-14 09:57:40

标签: javascript php firebase real-time pusher

我有一个应用程序,用户可以关注其他用户。我想拥有一个实时更新系统,显示用户拥有的关注者总数。

我刚开始玩FirebasePusher,但我不明白一件事 - 每个用户都有自己的'频道'吗?我如何处理跟随者计数器更新这样的事情?

我按照教程看到push方法可以创建列表,所以我能看到的一个解决方案是拥有所有用户的列表,每个用户都是这样的对象:

{ username: 'john_doe', follower_count: 6 }

但我不明白我将如何在前端实际跟踪它?我应该有一个这样的过滤器吗?

var user = users.filter(function(user) { return user.username === 'john_doe'; });
// code to display user.follower_count

或者我有不同的方式吗?

2 个答案:

答案 0 :(得分:1)

大多数Firebase逻辑都基于侦听器,您可以为集合中发生的事件添加侦听器,当这些事件发生时,您可以执行某些操作。

解决这个问题的一种方法是:

var myFollowerListRef = new Firebase(PATH_TO_YOUR_COLLECTION);
myFollowerListRef.on("value", function(snapshot) {
    console.log(snapshot.length);
});

这样,每次关注者集合发生变化时,异步函数都会触发,您可以使用新数据执行所需操作。

了解更多信息:

https://www.firebase.com/docs/web/guide/retrieving-data.html

希望这有帮助,我还是Firebase的初学者。

答案 1 :(得分:0)

@ Th0rndike的方法是最简单的,适用于相对较短的列表。对于较长的列表,请考虑使用事务。来自Firebase documentation on saving transactional data

var upvotesRef = new Firebase('https://docs-examples.firebaseio.com/android/saving-data/fireblog/posts/-JRHTHaIs-jNPLXOQivY/upvotes');
upvotesRef.transaction(function (current_value) {
  return (current_value || 0) + 1;
});

但我建议您阅读整个Firebase指南。它包含许多常见用例的解决方案。