firebase数据库按值运行错误

时间:2017-06-26 12:25:57

标签: android firebase firebase-realtime-database

所以我有一个商店数据库,每个商店的名称前面都有一个数字。它们以随机顺序添加,但我希望它们按照从1到213的顺序显示。我的问题是当我使用orderbyvalue()时它会显示它们。

  • 1商店
  • 10 Store
  • 11商店
  • 12商店
  • 13商店
  • 14商店
  • 15商店
  • 16商店
  • 17商店
  • 18商店
  • 19 Store
  • 2 Store
  • 20 Store
  • 21商店
  • 22 Store

等等。我需要它们显示1,2,3,4,5等,而不是1,10,11,12,13等。

我应该用什么来解决这个问题?

2 个答案:

答案 0 :(得分:1)

前导零可能是临时解决方案,但就用户体验而言,这是错误的。您必须实现排序功能。此外,如果您的系统需要处理超过999家商店,那么您将无法触及您的代码。

答案 1 :(得分:0)

正如约翰评论的那样,你得到的顺序是:由于你要存储字符串,所以按字典顺序排列节点。

如果要以数字方式订购,则必须将值存储为数字或(在您的情况下更有可能)将值存储为按字典顺序排列相同的格式。 E.g。

  • 01 Store
  • 02商店
  • 10 Store
  • 11商店
  • 19 Store
  • 20 Store
  • 21商店
  • 22 Store

或者

  • 001商店
  • 002商店
  • 010 Store
  • 011 Store
  • 019商店
  • 020商店
  • 021商店
  • 022商店

在这种情况下,字符串的填充/前缀非常正常。其中一个主要缺点是,当您启动项目时,您必须确定数字中使用的字符数。