orderByChild和一个孩子具有特定值

时间:2019-02-11 13:44:20

标签: android firebase firebase-realtime-database

如何实现排名,使用户可以看到女孩或男孩的前十名? 我知道如何创建排名,以便可以看到所有用户中排名前十的用户,但是我不知道如何创建仅显示女孩或男孩的排名。 (我知道我可以更改用户节点,但这是不可能的,因为那样我就无法对所有用户进行排名)

我的用户节点如下所示:

 users
   /$userId
       /points      
       /sex

1 个答案:

答案 0 :(得分:2)

documentation中所述,“一次只能使用一种order-by方法。在同一查询中多次调用order-by方法会引发错误”。

解决此“限制”的最常见方法是复制数据,这在NoSQL世界中很常见。

您将拥有如下数据模型:

users
   /$userId
       /points      
       /sex
femaleUsers
   /$userId
       /points      
maleUsers
   /$userId
       /points 

您将使用update()方法来使不同节点保持同步。