Java 如何在TabLayout片段上解析onSuccessListener

Java 如何在TabLayout片段上解析onSuccessListener,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,我正在尝试使用Cloud Firestore数据库中的数据和以下代码填充我在选项卡布局片段上制作的布局。错误显示: 无法应用任务中的成功侦听器(addOnSuccessListener (com.google.android.gms.tasks.OnSuccessListener) 无法应用任务中的 到 (匿名com.google.android.gms.tasks.OnSuccessListener) ) 这是我的代码: @Override public void onStart(){

我正在尝试使用Cloud Firestore数据库中的数据和以下代码填充我在选项卡布局片段上制作的布局。错误显示:

无法应用任务中的成功侦听器(addOnSuccessListener (com.google.android.gms.tasks.OnSuccessListener) 无法应用任务中的 到 (匿名com.google.android.gms.tasks.OnSuccessListener) )

这是我的代码:

@Override
public void onStart(){
    super.onStart();

    notebookRef.get().addOnSuccessListener(new 
        OnSuccessListener<DocumentSnapshot>() {
            @Override
            public void onSuccess(DocumentSnapshot documentSnapshot) {
                if (documentSnapshot.exists()) {
                    Items items = documentSnapshot.toObject(Items.class);

                    String name1 = items.getName();
                    String company1 = items.getCompany();
                    String image1 = items.getImage();

                    name.setText(name1);
                    company.setText(company1);
                    Picasso.get()
                        .load(image1)
                        .fit()
                        .centerCrop()
                        .into(imageView);
                } else {
                    Toast.makeText(getContext(), "Document does not exist", Toast.LENGTH_SHORT).show();
            }
        }
    }).addOnFailureListener(new OnFailureListener() {
           @Override
           public void onFailure(@NonNull Exception e) {
                Log.d(TAG, e.toString());
           }
    });
}
@覆盖
public void onStart(){
super.onStart();
notebookRef.get().addOnSuccessListener(新
OnSuccessListener(){
@凌驾
成功时公共无效(文档快照文档快照){
if(documentSnapshot.exists()){
Items=documentSnapshot.toObject(Items.class);
字符串名称1=items.getName();
字符串company1=items.getCompany();
字符串image1=items.getImage();
name.setText(name1);
company.setText(company1);
毕加索
.加载(图1)
.fit()
.centerCrop()
.进入(图像视图);
}否则{
Toast.makeText(getContext(),“文档不存在”,Toast.LENGTH_SHORT.show();
}
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Log.d(标记,例如toString());
}
});
}

您遇到以下错误:

无法将任务中的addOnSuccessListener(com.google.android.gms.tasks.OnSuccessListener)应用于(匿名com.google.android.gms.tasks.OnSuccessListener)

因为您使用的是
DocumentSnapshot
,而不是
QuerySnapshot
。要解决此问题,请使用以下代码行:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference phonesRef = rootRef.collection("Phones");
phonesRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (QueryDocumentSnapshot document : task.getResult()) {
                Items items = document.toObject(Items.class);

                String name1 = items.getName();
                String company1 = items.getCompany();
                String image1 = items.getImage();

                name.setText(name1);
                company.setText(company1);
                Picasso.get()
                        .load(image1)
                        .fit()
                        .centerCrop()
                        .into(imageView);
            }
        }
    }
});
FirebaseFirestore rootRef=FirebaseFirestore.getInstance();
CollectionReference phonesRef=rootRef.collection(“电话”);
phonesRef.get().addOnCompleteListener(新的OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
对于(QueryDocumentSnapshot文档:task.getResult()){
Items=document.toObject(Items.class);
字符串名称1=items.getName();
字符串company1=items.getCompany();
字符串image1=items.getImage();
name.setText(name1);
company.setText(company1);
毕加索
.加载(图1)
.fit()
.centerCrop()
.进入(图像视图);
}
}
}
});

现在它可以工作了,因为我们正在使用
QuerySnapshot
not文档快照来获取
对象。

请添加您得到的整个错误消息,并指明发生错误的行。@AlexMamo this-addOnSuccessListener(com.google.android.gms.tasks.onSuccessListener如何定义
notebookRef
请将您的数据库结构添加为屏幕截图。@AlexMamo我已经添加了数据库,这些是我的Firebase引用-private FirebaseFirestore DB=FirebaseFirestore.getInstance();private CollectionReference notebookRef=DB.collection(“手机”)好的,我马上给你写一个答案。嘿,亚历克斯,看看这个,我看看,如果我知道答案,我就给你写。