RecycleView适配器:java.util.ArrayList无法强制转换为com.google.firebase.firestore.QuerySnapshot

RecycleView适配器:java.util.ArrayList无法强制转换为com.google.firebase.firestore.QuerySnapshot,java,android,firebase,android-recyclerview,google-cloud-firestore,Java,Android,Firebase,Android Recyclerview,Google Cloud Firestore,我是个新手,不熟悉使用recyclerview适配器。我使用此方法将数据加载到recyclerview适配器中。数据将使用合并查询进行过滤。然而,应用程序崩溃了,我得到了java.lang.ClassCastException:java.util.ArrayList无法转换为com.google.firebase.firestore.QuerySnapshot。有人知道如何解决这个问题吗 private void loadData(){ if(modelArrayList.si

我是个新手,不熟悉使用recyclerview适配器。我使用此方法将数据加载到recyclerview适配器中。数据将使用合并查询进行过滤。然而,应用程序崩溃了,我得到了java.lang.ClassCastException:java.util.ArrayList无法转换为com.google.firebase.firestore.QuerySnapshot。有人知道如何解决这个问题吗

private void loadData(){

        if(modelArrayList.size()>0)
            modelArrayList.clear();

        storageReference = FirebaseStorage.getInstance().getReference();
        Query query = collectionReference.whereArrayContains("pet", pettype);
        Query query2 = collectionReference.whereArrayContains("service", "Pet Sitting");
        Query query3 = collectionReference.whereArrayContains("petnum", petnumber);
        Query query4 = collectionReference.whereArrayContains("region", reg);
        Query query5 = collectionReference.whereArrayContains("subregion", subreg);

        Task task = query.get();
        Task task2 = query2.get();
        Task task3 = query3.get();
        Task task4 = query4.get();
        Task task5 = query5.get();

        Task combinedtask = Tasks.whenAllSuccess(task, task2, task3, task4, task5);

        combinedtask.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                for(DocumentSnapshot querySnapshot: task.getResult()){
                    model model = new model(querySnapshot.getString("firstname"),
                            querySnapshot.getString("lastname"),
                            querySnapshot.getString("description"),
                            querySnapshot.getString("userID"));

                    modelArrayList.add(model);
                }
                adapter = new My_recyclerview_adapter(Pet_sitting_result.this, modelArrayList);
                recycler_view.setAdapter(adapter);
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(Pet_sitting_result.this, "Error", Toast.LENGTH_SHORT);
            }
        });
    }
private void loadData(){
如果(modelArrayList.size()>0)
modelArrayList.clear();
storageReference=FirebaseStorage.getInstance().getReference();
Query Query=collectionReference.whererraycontains(“pet”,pettype);
查询query2=collectionReference.whererraycontains(“服务”、“宠物看护”);
查询query3=collectionReference.whererrayContains(“petnum”,petnumber);
查询query4=collectionReference.whererraycontains(“region”,reg);
查询query5=collectionReference.WhererrayContains(“子区域”,子区域);
Task=query.get();
任务task2=query2.get();
Task task3=query3.get();
Task task4=query4.get();
Task task5=query5.get();
Task combinedtask=Tasks.WhallSuccess(任务、任务2、任务3、任务4、任务5);
combinedtask.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
对于(DocumentSnapshot querySnapshot:task.getResult()){
model model=新模型(querySnapshot.getString(“firstname”),
querySnapshot.getString(“lastname”),
querySnapshot.getString(“说明”),
getString(“userID”);
modelArrayList.add(model);
}
适配器=新的My\u recyclerview\u适配器(Pet\u siting\u result.this,modelArrayList);
回收器视图。设置适配器(适配器);
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Toast.makeText(Pet\u siting\u result.this“Error”,Toast.LENGTH\u SHORT);
}
});
}

由于您的
组合任务是多个其他任务的结果,因此它将生成一个
列表
对象,而不是
查询快照
。因此,您的成功回调应该声明它接受一个
列表,因为您的
组合任务是多个其他任务的结果,因此它将生成一个
列表
对象,而不是
QuerySnapshot
。因此,您的成功回调应该声明它接受一个
列表,我不太了解拉单个快照部分。介意详细说明吗?访问列表中的任务以获得每个查询的结果。和其他列表一样,我不确定结果会是什么,但我正在尝试为所有查询创建AND运算符。例如,用户必须满足所有五个条件才能显示其数据。如果他们只见面,我就不太明白拉个人快照的部分。介意详细说明吗?访问列表中的任务以获得每个查询的结果。和其他列表一样,我不确定结果会是什么,但我正在尝试为所有查询创建AND运算符。例如,用户必须满足所有五个条件才能显示其数据。只要他们能见面