Java 等待Firestore查询完成

Java 等待Firestore查询完成,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,我目前正试图在firestore中运行多个查询,并希望在执行下一个代码之前等待它们全部完成。我已经阅读了一些可能的途径,但我还没有找到一个好的Android示例 public HashMap multipleQueries(字符串集合、字符串字段、最终ArrayList条件){ HashMap resultMap=新的HashMap(); 对于(int i=0;i

我目前正试图在firestore中运行多个查询,并希望在执行下一个代码之前等待它们全部完成。我已经阅读了一些可能的途径,但我还没有找到一个好的Android示例

public HashMap multipleQueries(字符串集合、字符串字段、最终ArrayList条件){
HashMap resultMap=新的HashMap();
对于(int i=0;i
由于
get()
返回一个
任务
,因此可以使用


但是,由于所有数据都是异步加载的,因此无法从此函数返回
列表。您最多只能从
任务返回结果。whalll(…)
,它本身就是一个
任务。请参阅道格·史蒂文森(Doug Stevenson)关于成为任务主管的精彩文章:

如果您有3个以上的查询,我建议您以可以减少查询数量的方式重新构建数据库。如果不是这样的话,这应该没问题。。。在Android中,等待异步任务完成的理想方法是使用,但这些方法仅在Kotlin中可用。我目前还不知道有哪种java与之类似。我已经能够使用whenAll(…)方法创建多个任务并将它们添加到一个任务中,但我不确定如何获得单个查询结果。我正在查询一个文档是否存在,因此即使该文档不存在,查询仍能成功找到答案。是否有任何方法可以访问单个查询的结果?我是否可以为各个查询设置一个onSuccess侦听器来检查其中的数据,如果未找到任何文档,则该任务是否会抛出模拟失败的内容?您可以保留对所有单个任务的引用,或者使用
whenAllComplete
whenAllSuccess