FirebaseRecylcerVAdapter 从最高到最低排序

FirebaseRecylcerVAdapter Sorting from Highest to Lowest

我正在使用 firebase recyclerAdapter 来填充我的视图,并希望将这些数据从最高点到最低点排序。

P.S : 我正在使用 firebase 实时数据库。

正如我在您的数据库中看到的那样,您将所有这些值存储为字符串而不是数字。当您尝试对字符串进行排序时,您需要知道字符串是按 lexicographically.

排序的

快速解决此问题的方法是将数据类型从字符串更改为 intlong。所以对于数字,这是正常顺序:

  • 1308
  • 1309
  • 1310
  • 1311

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

  • “1308”
  • “1309”
  • "131"
  • “1310”

据我所知,在 Firebase 中和其他数据库中都没有允许您更改此行为的运算符。相反,您将不得不修改数据以获得您想要的行为。因此,当按字典顺序排序时,请按照您需要的顺序存储值。对于数字,您可以通过用零填充它们来实现:

  • "0131" //前面加零
  • "0132" //之前加零
  • ......
  • “1308”
  • “1309”
  • “1310”
  • “1311”

要订购结果,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference tableRef = rootRef.child("table");
Query query = tableRef.orderByChild("teamPoints");
query.addListenerForSingleValueEvent(/* ... */);

我错过了,但根据@FrankvanPuffelen 的评论,请参阅 post,其中解释了可以反转顺序的方式。