如何在android中使用内部键排序检索firebase数据

时间:2017-08-29 16:41:48

标签: android firebase firebase-realtime-database

firebase

我在firebase数据库中有上面的结构化数据。我在每个月的名称前添加了数字,否则数据显示为字母升序。添加数字后,我面临另一个问题,10,11,12介于1和2之间。在检索数据时,我得到的结果是这个序列。

我在检索数据时尝试了orderByChild("deposit"),但没有任何改变。

如何将数据检索为数字升序或月份名称顺序?

1 个答案:

答案 0 :(得分:1)

在Firebase数据库中,键的类型为String。当您订购字符串数据时,会对其进行排序lexicographically

因此对于数字,正常的顺序是:

  • 1
  • 9
  • 10
  • 11

但对于字符串,正常的顺序是:

  • " 1"
  • " 11"
  • " 19"
  • " 9"

Firebase中没有运营商,据我所知,在其他JSON数据库中也没有更改此类行为。相反,您必须修改数据才能获得所需的行为。因此:按字典顺序排序时,按照您需要的顺序存储值。对于数字,您可以通过用零填充它们来实现这一点:

  • " 001"
  • " 009"
  • " 011"
  • " 019"

在您的情况下,您需要使用:

  • 01-一月
  • 02二月
  • 03-三月
  • ...
  • 11月
  • 12月

希望它有所帮助。