java - Firestore order by 和 limit 在 kotlin 中不起作用
问题描述
我有以下 Firestore 设置:
-Root
- Queue
- item1
- time : 20
- item2
- time : 1
- 2000 more items, with a random time value
我想要的是显示 40 个项目,时间最短,所以我在 kotlin 中执行以下操作:
val ref = firestore.collection("Queue")
orderBy?.let{
ref.orderBy(it)
}
limit?.let{
ref.limit(it)
}
return ref.get().get().toObjects(Queue::class.java)
它实际上完全忽略了我的 order by 和 limit 语句。并返回队列集合中的所有项目,我做错了什么。
解决方案
这里的文档:
https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/Query
说 orderBy 和 limit 方法返回一个新的查询对象,所以也许你应该尝试
val ref = firestore.collection("Queue").orderBy("time").limit(40)
根据对您的问题的更新,您可以创建一个函数,根据 orderBy 和 limit 查询修饰符是否存在来返回您想要的查询。您必须将该查询对象设为 var 才能使其可变。
推荐阅读
- ember.js - Ember - 选择错误 - 您修改了“focused”两次
- gstreamer - GStreamer RTSP-Server 将自定义 GstMeta 数据传输到客户端
- php - 如何绕过(已弃用)reCAPTCHA V1?
- javascript - jQuery Isotope 撤消随机播放
- .htaccess - .htaccess 将没有语言子文件夹的域重定向到语言子文件夹
- javascript - JavaScript正则表达式获取波斯语/英语字符串中最多3个单词的第一个字母
- php - php数组和键值相同
- java - 在使用 gradle 构建的 Kotlin 应用程序的 Jar 中找不到主类
- winforms - 在 .NET 3.5 中工作并在重新打开设计器后添加图表时出现设计时错误
- html - 网页抓取自动登录vb