首页 > 解决方案 > 在 firestore 中使用 orderBy 执行 whereEqualTo

问题描述

我在我的应用程序中使用firestore,我想对字段“Type”值为“manual”的所有文档进行排序,并根据名为“DateCreated”的其他字段对它们进行排序。

我正在尝试执行以下操作,但没有得到任何结果:

    db.collection( "Items" ).whereEqualTo( "Type", "manual" ).orderBy( "DateCreated", Query.Direction.DESCENDING ).limit( 20).get()
            .addOnSuccessListener( queryDocumentSnapshots -> {
                ....
            } );

有什么理由不工作吗?

如果我取消类型查询,那么我可能会发现返回的 20 个项目都不是我需要的类型,因此没有结果对我有好处。

谢谢

标签: javaandroidgoogle-cloud-firestore

解决方案


您可能需要关于“类型”的索引。带有 URL 的错误消息也应该打印在您的 logcat 中。如果您能找到它,只需单击该 URL。否则,请尝试手动创建一个..

https://firebase.google.com/docs/firestore/query-data/indexing


推荐阅读