java - 在 firestore 中使用 orderBy 执行 whereEqualTo
问题描述
我在我的应用程序中使用firestore,我想对字段“Type”值为“manual”的所有文档进行排序,并根据名为“DateCreated”的其他字段对它们进行排序。
我正在尝试执行以下操作,但没有得到任何结果:
db.collection( "Items" ).whereEqualTo( "Type", "manual" ).orderBy( "DateCreated", Query.Direction.DESCENDING ).limit( 20).get()
.addOnSuccessListener( queryDocumentSnapshots -> {
....
} );
有什么理由不工作吗?
如果我取消类型查询,那么我可能会发现返回的 20 个项目都不是我需要的类型,因此没有结果对我有好处。
谢谢
解决方案
您可能需要关于“类型”的索引。带有 URL 的错误消息也应该打印在您的 logcat 中。如果您能找到它,只需单击该 URL。否则,请尝试手动创建一个..
https://firebase.google.com/docs/firestore/query-data/indexing
推荐阅读
- vbscript - VBScript:从网页下载 JSON 文件并将内容读取到变量
- ios - 如何从 AVAudioBuffer 音频样本中确定音量
- next.js - NextJs - Apollo - 第一次渲染不是 SSR
- sql - 没有 CREATE TABLE 的连接列上的 SQL JOIN
- sqlite - 当从文字中的相同总数中减去总和时,SQLite 会显示浮点数
- python - 在熊猫数据框中组合多行
- reactjs - 收到警告:列表中的每个孩子都应该有一个唯一的“关键”道具。在传播 props 和组合多个 Mui 组件时
- spring-integration - WARN JdbcChannelMessageStore 带有 id 的消息没有被删除
- python - cv2.imshow([winname], [mat]) 后的分段错误
- angular - AngularFirestore 动态查询