Java 活动中的RecyclerView始终为空
当我运行我的应用程序时,Java 活动中的RecyclerView始终为空,java,android,firebase,google-cloud-firestore,Java,Android,Firebase,Google Cloud Firestore,当我运行我的应用程序时,RecyclerView在活动中始终显示为空。我用普通的RecyclerView和firebaseRecyclerOptions编写了代码,但列表中没有显示任何数据。数据在实时数据库和云FireStore上都可用,但我在RecyclerView中没有任何数据 适配器类 public class FeedsAdapter extends FirestoreRecyclerAdapter <Fmodel,FeedsAdapter.myFeedViewHolder>
RecyclerView
在活动中始终显示为空。我用普通的RecyclerView
和firebaseRecyclerOptions编写了代码,但列表中没有显示任何数据。数据在实时数据库和云FireStore上都可用,但我在RecyclerView
中没有任何数据
适配器类
public class FeedsAdapter extends FirestoreRecyclerAdapter <Fmodel,FeedsAdapter.myFeedViewHolder> {
public FeedsAdapter(@NonNull FirestoreRecyclerOptions <Fmodel> options) {
super ( options );
}
@Override
protected void onBindViewHolder(@NonNull myFeedViewHolder holder, int position, @NonNull Fmodel model) {
holder.name.setText ( model.getFname () );
holder.mobile.setText ( model.getFmobile () );
holder.address.setText ( model.getFaddress ());
holder.message.setText ( model.getFmessage ());
}
@NonNull
@Override
public myFeedViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from ( parent.getContext () ).inflate ( R.layout.feedbacks,parent,false );
return new myFeedViewHolder ( view );
}
class myFeedViewHolder extends RecyclerView.ViewHolder{
TextView name,mobile,address,message;
public myFeedViewHolder(@NonNull View itemView) {
super ( itemView );
name = itemView.findViewById ( R.id.name );
mobile = itemView.findViewById ( R.id.mobile );
address = itemView.findViewById ( R.id.address );
message = itemView.findViewById ( R.id.messege );
}
}
}
package gk.com.Model;
public class Fmodel {
private String fname;
private String faddress;
private String fmobile;
private String fmessage;
public Fmodel() {
}
public Fmodel(String fname, String faddress, String fmobile, String fmessage) {
this.fname = fname;
this.faddress = faddress;
this.fmobile = fmobile;
this.fmessage = fmessage;
}
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public String getFaddress() {
return faddress;
}
public void setFaddress(String faddress) {
this.faddress = faddress;
}
public String getFmobile() {
return fmobile;
}
public void setFmobile(String fmobile) {
this.fmobile = fmobile;
}
public String getFmessage() {
return fmessage;
}
public void setFmessage(String fmessage) {
this.fmessage = fmessage;
}
}
由于以下代码行,您很可能会得到一个“空白”活动:
Query query = collectionReference.orderBy ( "Fname", Query.Direction.ASCENDING );
这意味着您正试图查询反馈
集合,并根据Fname
属性对结果进行排序。这行代码让我认为,在数据库中,您的fname
属性以大写开头,这是不正确的,因为Fmodel
类中的fname
属性以小写开头。要使其工作,两个属性必须匹配。要解决这个问题,请查看我在以下帖子中的答案:
谢谢你的编辑,这对我没有帮助。我做了改变后,也回收是空白的。甚至我删除了升序列表的查询行,并将查询作为CollectionReference对象传递。我的问题已经解决了。谢谢@Alex Mamo,我的行项目XML文件中有一个错误,再次感谢。如果您完成了答案中建议的更改,确实解决了问题。您在.XML文件中也遇到了问题,这与最初的问题无关。
Query query = collectionReference.orderBy ( "Fname", Query.Direction.ASCENDING );