android - 如何按升序对 Firebase 键进行排序?

标签 android firebase firebase-realtime-database firebaseui

我的 Firebase 数据库中有一个产品列表。我的 SKU 看起来像这样 c08p10。但问题是百产品显示在第十产品之后。

困惑的产品订单请引用截图。

enter image description here

我能理解产品是按字母顺序排列的。但是如何按以下顺序显示产品

c08p10
c08p11
c08p12

注意

我可以在 ListView 或回收器 View 中填充数据。但是产品是按照 firebase DB 顺序排列的。如果我尝试颠倒顺序。它给出了以下结构。

c08p118
c08p117
c08p116

最佳答案

Firebase 键是字符串。当您对字符串数据进行排序时,它是按字典顺序排序的。

所以对于数字,这是正常顺序:

  • 1
  • 9
  • 10
  • 11

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

  • “1”
  • “11”
  • “19”
  • “9”

Firebase 中(大多数其他数据库中也没有)没有运算符来更改此行为。相反,您将不得不修改数据以获得您想要的行为。因此:按字典顺序存储按您需要的顺序存储的值。对于数字,您可以通过用零填充它们来实现:

  • “001”
  • “009”
  • “011”
  • “019”

或者在你的情况下 c09p010

关于android - 如何按升序对 Firebase 键进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43275688/

相关文章:

java - 如何将值推送到 Cloud Firestore 文档中的数组字段?

java - 多次初始化 FirebaseDatabase.getInstance() 是否会影响性能?

swift - 通过指定的键查询数据库

ios - 如何从 firebase 数据库中的许多子项中检索数据

android - 通过 Firebase 回收器 View 搜索时无法

android - 更新和删除用于填充 UI 的 sqlite 数据库

android - 什么时候需要扩展 Application 类?

ios - GoogleAuth 在 IOS 中使用 Firebase

Android:如何知道为我的设备加载的驱动程序

android - java.lang.NoSuchMethodError : org. apache.commons.codec.binary.Base64.encodeBase64