- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在组合两个查询来对 Firestore 集合执行“不等于”查询,这在 Firestore 中 native 不可能实现,因此我必须在本地执行此操作。我需要获取组合任务的最后一个可见文档以用于分页。
以下是我编写的代码,用于从两个查询结果中获取文档列表。
Query first = firebaseFirestore
.collection("jobs")
.whereGreaterThan("createdBy",currentUser.getEmail())
.orderBy("createdDate",Query.Direction.ASCENDING)
.limit(2);
Query second = firebaseFirestore
.collection("jobs")
.whereLessThan("createdBy",currentUser.getEmail())
.orderBy("createdDate",Query.Direction.ASCENDING)
.limit(2);
Task<QuerySnapshot> firstTask = first.get();
Task<QuerySnapshot> secondTask = second.get();
final Task<List<QuerySnapshot>> combinedTask = Tasks.whenAllSuccess(firstTask, secondTask);
combinedTask.addOnSuccessListener(new OnSuccessListener<List<QuerySnapshot>>() {
@Override
public void onSuccess(List<QuerySnapshot> querySnapshots) {
List<Job> list = new ArrayList<>();
for(QuerySnapshot qs: querySnapshots){
for(DocumentSnapshot document: qs){
Job job = document.toObject(Job.class);
list.add(job);
}
}
JobAdapter jobAdapter = new JobAdapter(list);
recyclerView.setAdapter(jobAdapter);
DocumentSnapshot lastVisible = combinedTask.getResult().get()
}
});
在行
DocumentSnapshot lastVisible = combinedTask.getResult().get()
我只能访问第一个查询或第二个查询中的文档,因此我不确定如何获取最后一个可见文档,我认为最后一个文档在逻辑上来 self 的第二个查询,但我不确定。
这是我为完成此任务而遵循的教程:
最佳答案
您可以通过简单地创建 lastVisible
来解决这个问题作为类中的全局变量:
private DocumentSnapshot lastVisible;
然后在for循环中赋值:
final Task<List<QuerySnapshot>> combinedTask = Tasks.whenAllSuccess(firstTask, secondTask);
combinedTask.addOnSuccessListener(new OnSuccessListener<List<QuerySnapshot>>() {
@Override
public void onSuccess(List<QuerySnapshot> querySnapshots) {
List<Job> list = new ArrayList<>();
for(QuerySnapshot qs: querySnapshots){
for(DocumentSnapshot document : qs){
Job job = document.toObject(Job.class);
list.add(job);
lastVisible = qs.getDocuments().get(qs.size() - 1);
}
}
Query nextQuery = firebaseFirestore
.collection("jobs")
.whereGreaterThan("createdBy",firebaseAuth.getCurrentUser().getEmail())
.orderBy("createdDate",Query.Direction.ASCENDING)
.startAfter(lastVisible)
.limit(2);
//Use the nextQuery
}
});
查看调用 .startAfter(lastVisible)
的电话?所以这会起作用,因为在 for 循环结束时,lastVisible
对象将始终保留最后一个 DocumentSnapshot
的值对象。
附注感谢您使用我的教程作为 Firestore 分页示例:)
关于java - 如何在 Firestore 查询的组合任务中获取最后一个可见的 DocumentSnapshot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60906876/
一个自定义对象,其参数为(DocumentSnapShot documentsnapShot)。也是来自 Firebase 的一个内部对象,它检索快照并将值设置为我的自定义模型也有它的参数(Docum
我正在尝试根据用户是否参加调查来显示特定的图标。 目前,我正在使用StreamBuilder侦听文档中的给定值,该文档返回调查名称。然后,我想在下一个StreamBuilder中使用调查名称,该名称将
采用 (DocumentSnapShot DocumentsnapShot) 参数的自定义对象。也是来自 Firebase 的内部对象,它检索快照并将值设置为我的自定义模型也有其参数(Document
采用 (DocumentSnapShot DocumentsnapShot) 参数的自定义对象。也是来自 Firebase 的内部对象,它检索快照并将值设置为我的自定义模型也有其参数(Document
采用 (DocumentSnapShot DocumentsnapShot) 参数的自定义对象。也是来自 Firebase 的内部对象,它检索快照并将值设置为我的自定义模型也有其参数(Document
采用 (DocumentSnapShot DocumentsnapShot) 参数的自定义对象。也是来自 Firebase 的内部对象,它检索快照并将值设置为我的自定义模型也有其参数(Document
采用 (DocumentSnapShot DocumentsnapShot) 参数的自定义对象。也是来自 Firebase 的内部对象,它检索快照并将值设置为我的自定义模型也有其参数(Document
采用 (DocumentSnapShot DocumentsnapShot) 参数的自定义对象。也是来自 Firebase 的内部对象,它检索快照并将值设置为我的自定义模型也有其参数(Document
采用 (DocumentSnapShot DocumentsnapShot) 参数的自定义对象。也是来自 Firebase 的内部对象,它检索快照并将值设置为我的自定义模型也有其参数(Document
采用 (DocumentSnapShot DocumentsnapShot) 参数的自定义对象。也是来自 Firebase 的内部对象,它检索快照并将值设置为我的自定义模型也有其参数(Document
采用 (DocumentSnapShot DocumentsnapShot) 参数的自定义对象。也是来自 Firebase 的内部对象,它检索快照并将值设置为我的自定义模型也有其参数(Document
我使用 Firestore 并有一个带有字段的集合。该字段有多个字符串值: 字段:名称 0:“姓名 1” 1:“姓名 2” 2:“姓名 3” 与 let documentData = document
我想从文档“list_of_clients”中读取每个对象列表并将其导出到我创建的自定义列表 在实时数据库中有一个函数叫做 GenericTypeIndicator 这可以帮助您获取值,这与我想要的类
首先我看到了答案: here但对来自 android 和 angular 的我来说,不得不写这么多代码(在 android 和 angular 中需要一行)加上答案不是最新的,所以想知道现在是否有更好
我正在尝试检查我的 documentSnapshot 中是否存在字段。 我的代码: document.data.containsKey('field_name') 但我得到了: error: The
我无法使用属性 data()在文档快照上。它在控制台中给了我一个错误。这是确切的错误: auth.service.ts(72,20): error TS2339: Property 'data' do
我是刚开始遇到火灾或 flutter 朔迷离的人,我想知道关于读写操作的某些事情 如果在StreamBuilder中我们将DocumentSnapshots列表存储在这样的变量中,final even
我一直在尝试从/ users集合中获取文档数据, 但是问题是我声明了de builder之后: 这是FutureBuiulder的必需参数,数据未通过它,并且我得到data = null。 我究竟做错
我正在组合两个查询来对 Firestore 集合执行“不等于”查询,这在 Firestore 中 native 不可能实现,因此我必须在本地执行此操作。我需要获取组合任务的最后一个可见文档以用于分页。
如何获取 Firestore 中文档的 ID? final String PostKey = db.collection("Anuncio").document().getId(); 我正在尝试这种方
我是一名优秀的程序员,十分优秀!