如何在Kotlin中按Firestore文档的hike字段倒序排列RecyclerView数据
实现Firestore数据按数字字段降序排列显示在RecyclerView
要让数字最大的文档排在RecyclerView顶部,只需将Firestore查询的排序方向从升序改为降序即可:
修改后的完整代码如下:
private fun eventChangeListener() { db = FirebaseFirestore.getInstance() // 将排序方向改为DESCENDING,实现数字从大到小排列 db.collection("posts").orderBy("hike", Query.Direction.DESCENDING) .addSnapshotListener(object : EventListener<QuerySnapshot>{ override fun onEvent(value: QuerySnapshot?, error: FirebaseFirestoreException?) { if (error != null){ Log.e("Firestore Error",error.message.toString()) return } // 每次快照更新前清空列表,避免重复添加数据 userArrayList.clear() for (dc: DocumentChange in value?.documentChanges!!){ if (dc.type == DocumentChange.Type.ADDED){ userArrayList.add(dc.document.toObject(User::class.java)) } } adapter.notifyDataSetChanged() } }) }
额外注意事项:
- 确保Firestore中文档的
hike字段为数字类型(如Integer、Long或Double),若为字符串类型,排序会按字符串字典序执行,不符合数字排序逻辑。 - 新增
userArrayList.clear()步骤,避免快照更新时重复添加数据导致RecyclerView内容重复。
内容的提问来源于stack exchange,提问作者Jash
相关产品推荐
相关产品推荐

