我在 Android 应用中使用 Cloud Firestore。
我创建了 2 个查询,一个 whereLessThan
和一个 whereGreaterThan
来有效地创建一个 !=
查询。
我为每个单独的查询排序结果,但是当我单独运行它们时,我可能会首先返回一个或另一个,具体取决于哪个更快。
当我将 2 个查询合并为 1 个查询,然后使用 Tasks.whenAllSuccess
方法获取 1 个 Task
并向其添加 1 个 OnSuccessListener
时,它会保持我通过任务的结果顺序吗?
public void loadNotes(View v) {
Task task1 = notebookRef
.whereLessThan("priority", 2)
.orderBy("priority")
.get();
Task task2 = notebookRef
.whereGreaterThan("priority", 2)
.orderBy("priority")
.get();
Task finalTask = Tasks.whenAllSuccess(task1, task2).addOnSuccessListener(new OnSuccessListener<List<Object>>() {
@Override
public void onSuccess(List<Object> objects) {
//will my results be ordered prioty 1 - 3 - 4 - 5....?
}
});
}
最佳答案
Tasks.whenAllSuccess(和其他whenAll方法)将按照传递给whenAllSuccess的顺序将任务结果传递到列表中的回调。如果您需要其他方式获取结果,您可以使用原始 Task 对象维护一些数据结构,然后根据需要查询它们。
关于android - Tasks.whenAllSuccess 是否保证我将任务传递给它的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50123649/