首页 > 解决方案 > Firestore orderBy number 字段不返回任何文档

问题描述

我正在使用 FirestorePagingAdapter 在 RecyclerView 中显示文档数据。这是我的查询:

val myFollowersQuery: Query
        get() = userRelationsColRef.whereEqualTo("uid2", firebaseAuthUid)

有 uid2 字段设置为某个值 firebaseAuthUid 的三个文档,此查询获取这三个文档并使用 FirestorePagingAdapter 在 RecyclerView 中显示它们。

这些文档中的每一个都有一个“点”字段,我想按该字段对文档进行排序。这是我的查询。

val myFollowersQuery: Query
        get() = userRelationsColRef.whereEqualTo("uid2", firebaseAuthUid)
                .orderBy("points", Query.Direction.ASCENDING)

此查询不返回任何文档,这三个具有 uid2 = firebaseAuthUid 的文档的字段点等于 0,10 和 100000000。我看不出此查询不能按点字段排序的任何原因,没有拼写错误在字段名称中,字段类型没有错误,什么都没有。我首先认为 FirestorePagingAdapter 可能存在一些问题并使用 .orderBy 进行查询,但我的应用程序中还有另一个片段,我使用 FirestorePagingAdapter 获取一些文档并按时间戳字段对它们进行排序,它可以正常工作。

数据库结构: 在此处输入图像描述

标签: androidfirebasegoogle-cloud-firestore

解决方案


您可能需要为该查询创建索引。如果您检查错误,您将看到一个链接,该链接将为您创建索引


推荐阅读