2013-10-09 49 views
1

我为我的应用程序的每个用户在firebase中存储了一个scorefirebase中的数据排序

user { 
     name; 
     score; 
} 

我想显示排行榜的前10名用户的名称和分数(并保持实时更新)。 达成此目的的最佳方法是什么?

+1

您是否考虑过使用优先级以某种方式对分数进行编码? https://www.firebase.com/docs/ordered-data.html –

+0

请参阅此链接:[firebase.com/docs/ordered-data.html](http://firebase.com/docs/ordered-data。 html) – Eddev

回答

3

退房排行榜的例子一种方式来做到这一点:https://www.firebase.com/tutorial/#example/leaderboard

的基本原则是,除了设置名称和用户对象的分数,你可以使用setWithPriority还设置优先级为它。在这种特殊情况下的优先级可以是用户的分数(如果它的数字,它会自动为你排序)。然后,您可以使用.limit(10)查询来获得前10名用户的列表。

您还可以实现child_addedchild_changedchild_removed事件处理进入前10名的新用户,有人改变位置,有人分别在离开前10名的情况。

+0

如果您有不使用setWithPriority插入的现有记录,您将如何a)改造它们,或者b)在未设置的情况下对它们进行排序? – KevDog