向实时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等。
那就是层次结构的样子(对不起俄语,但还没有英语)
看起来像是按第一个字符而不是整个值排序
最佳答案
它假定按等级对其进行排序,并给出1/2/3/4/5/6值。而是返回1/10/11/12/13/14/15/16/17/18/19/2/20/21
这是正常的行为,因为您要根据rank
属性(字符串类型而不是数字类型)对结果进行排序。订购字符串时,元素为 ordered lexicographically。
您可以通过两种方式解决此问题,或者使用上述答案中的我的解决方案,或者将属性的类型更改为数字。我认为,既然所有这些价值都是数字,那么您应该继续这样做。