向实时Firebase查询

DatabaseReference mReference = mDatabase.getReference("Cards/" + language + "/" + gameTitle); Query query = mReference.orderByChild("rank"); query.addValueEventListener

它假定按rank对其进行排序,并给出1/2/3/4/5/6值。而是返回1/10/11/12/13/14/15/16/17/18/19/2/20/21等。
那就是层次结构的样子(对不起俄语,但还没有英语)
android - 实时查询sortByChild按字符而不是按值排序-LMLPHP
看起来像是按第一个字符而不是整个值排序

最佳答案

它假定按等级对其进行排序,并给出1/2/3/4/5/6值。而是返回1/10/11/12/13/14/15/16/17/18/19/2/20/21


这是正常的行为,因为您要根据rank属性(字符串类型而不是数字类型)对结果进行排序。订购字符串时,元素为 ordered lexicographically

您可以通过两种方式解决此问题,或者使用上述答案中的我的解决方案,或者将属性的类型更改为数字。我认为,既然所有这些价值都是数字,那么您应该继续这样做。

10-07 19:32
查看更多