【问题标题】:Realtime query sortByChild sorting by character not by value实时查询 sortByChild 按字符而不是按值排序
【发布时间】:2020-01-21 20:42:33
【问题描述】:

查询实时 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 等... 这就是层次结构的样子(对不起俄语,但还没有英语) 看起来它是按第一个字符而不是整个值排序的

【问题讨论】:

  • 嗨鲍里斯!请将您的数据库结构添加为 JSON 文件或至少作为屏幕截图。
  • @AlexMamo 添加了。谢谢你的帮助

标签: android firebase-realtime-database


【解决方案1】:

它假设按等级排序并给出 1/2/3/4/5/6 值。相反,它返回 1/10/11/12/13/14/15/16/17/18/19/2/20/21

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

有两种方法可以解决这个问题,要么使用上面答案中的我的解决方案,要么将属性类型更改为数字。在我看来,由于所有这些值都是数字,因此是您应该继续使用的解决方案。

【讨论】:

    猜你喜欢
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 2011-01-02
    • 2011-04-06
    • 1970-01-01
    • 2012-07-08
    相关资源
    最近更新 更多