我有一个应用程序,用户可以关注其他用户。我想拥有一个实时更新系统,显示用户拥有的关注者总数。
我刚开始玩Firebase
和Pusher
,但我不明白一件事 - 每个用户都有自己的'频道'吗?我如何处理跟随者计数器更新这样的事情?
我按照教程看到push
方法可以创建列表,所以我能看到的一个解决方案是拥有所有用户的列表,每个用户都是这样的对象:
{ username: 'john_doe', follower_count: 6 }
但我不明白我将如何在前端实际跟踪它?我应该有一个这样的过滤器吗?
var user = users.filter(function(user) { return user.username === 'john_doe'; });
// code to display user.follower_count
或者我有不同的方式吗?
答案 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指南。它包含许多常见用例的解决方案。