Android - Firebase 按值排序

标签 android firebase firebase-realtime-database

我在 Firebase 数据库中有一个包含用户评分列表的节点,我想从最高到最低对列表进行排序,并仅显示前 10 个评分:

我的排行榜节点:

leader_board
 -$week_id
   -$user_id: score

而我的java代码如下:

Query leader_board_query = leader_board_reference.child(week_id).orderByValue().limitToLast(10);

出于某种奇怪的原因,它总是从最低到最高排序。我试过使用 limitToFirst(10) 没有任何变化,请帮忙

最佳答案

orderByValue() 将始终按升序排序。

您可以使用 limitToLast() 仅获取已排序项目的最后一部分,然后您必须以编程方式还原项目。

示例数据集:

1, 3, 8, 9, 0, 5, 4, 7, 6, 2

orderByValue().limitToFirst(3) 应该返回 0, 1, 2

orderByValue().limitToLast(3) 应该返回 7, 8, 9,然后你恢复数组得到 9, 8, 7.

注意:这一切都未经测试,请报告结果;)

关于Android - Firebase 按值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39441689/

相关文章:

android - LayoutTransition DISAPPEARING 动画不适用于 Cursor Adapter

java - 尽管没有显示错误,但按下按钮时应用程序崩溃

AngularFireDatabase、Jest 和单元测试 firebase 实时数据库

ios - 将复杂结构保存到 firebase

firebase - 如何为聊天应用程序分片数据实时数据库?

swift - 通过 Firebase Swift 显示和更新注释

android - Android build.gradle 中的 proguard-android-optimize.txt 与 proguard-android.txt

android - GoogleAuthUtil : get access token that will provide an email address?

firebase - 缓存 Firebase 请求的云函数的示例,并且仅在成功编辑配置文件后重新缓存

node.js - 为什么 Eventarc 触发器在 Firebase 中不起作用?