要在本地合并2个单独的查询,建议您使用Tasks.whenAllSuccess()
方法。您可以使用以下代码行实现此目的:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
Query firstQuery = rootRef...
Query secondQuery = rootRef...
Task firstTask = firstQuery.get();
Task secondTask = secondQuery.get();
Task combinedTask = Tasks.whenAllSuccess(firstTask, secondTask).addOnSuccessListener(new OnSuccessListener<List<Object>>() {
@Override
public void onSuccess(List<Object> list) {
//Do what you need to do with your list
}
});
如您所见,当重写该onSuccess()方法时,结果是list对象的,这些对象具有作为参数传递给whenAllSuccess()方法的任务的确切顺序。
还有另一种方法,那就是使用Tasks.continueWith()方法。但是根据您的应用程序的用例,您可以使用whenAllSuccess()一种或多种continueWith()方法。请参阅此处的官方文档。