Java 无法从firebase数据库android、回收器视图检索数据
模型类代码Java 无法从firebase数据库android、回收器视图检索数据,java,android,firebase-realtime-database,android-recyclerview,firebaseui,Java,Android,Firebase Realtime Database,Android Recyclerview,Firebaseui,模型类代码 public class DeleteEditEventsModel { private String title, description, date, time, venue; DeleteEditEventsModel() { } public DeleteEditEventsModel(String title, String description, String date, String time, String venue) {
public class DeleteEditEventsModel
{
private String title, description, date, time, venue;
DeleteEditEventsModel() { }
public DeleteEditEventsModel(String title, String description, String date, String time, String venue) {
this.title = title;
this.description = description;
this.date = date;
this.time = time;
this.venue = venue;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getVenue() {
return venue;
}
public void setVenue(String venue) {
this.venue = venue;
}
}
这门课有什么问题吗
适配器类代码:
public class DeleteEditEventsAdapter extends FirebaseRecyclerAdapter<DeleteEditEventsModel, DeleteEditEventsAdapter.myViewHolder> {
public DeleteEditEventsAdapter(@NonNull FirebaseRecyclerOptions<DeleteEditEventsModel> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull final myViewHolder holder, final int position, @NonNull final DeleteEditEventsModel model) {
holder.title.setText(model.getTitle());
holder.description.setText(model.getDescription());
holder.date.setText(model.getDate());
holder.time.setText(model.getTime());
holder.venue.setText(model.getVenue());
holder.delete_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FirebaseDatabase.getInstance().getReference().child("Events")
.child(getRef(position).getKey()).removeValue();
}
});
}
@NonNull
@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_delete_events, parent, false);
return new myViewHolder(view);
}
class myViewHolder extends RecyclerView.ViewHolder {
TextView title, description, date, time, venue, edit_btn, delete_btn;
public myViewHolder(@NonNull View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.delete_event_Title);
description = (TextView) itemView.findViewById(R.id.delete_event_Description);
date = (TextView) itemView.findViewById(R.id.delete_event_Date);
time = (TextView) itemView.findViewById(R.id.delete_event_Time);
venue = (TextView) itemView.findViewById(R.id.delete_event_Venue);
edit_btn = (TextView) itemView.findViewById(R.id.delete_event_edit_btn_tv);
delete_btn = (TextView) itemView.findViewById(R.id.delete_event_btn_TV);
}
}
}
我想我的模型班有个问题
我第二次使用recycler视图,但我已将我的代码与以前的代码进行了对比检查,结果完全相同(我已验证),但无法理解此处的问题。当您尝试将实时数据库中的节点映射到“DeleteEditEventsModel”类型的对象时,类中存在的字段名称必须与数据库中存在的属性名称匹配。不幸的是,在您的情况下,字段不匹配。请参见,数据库中的字段以“Event”开头,而在类中则不是,这是不正确的 要解决这个问题,您有两个选择,要么更改数据库中属性的名称以匹配类中的名称,要么在getter前面使用注释。例如,如果您有一个名为“date”的字段,并且数据库中的属性名为“EventDate”,那么getter应该如下所示:
@PropertyName("EventDate")
public String getDate() {
return date;
}
通过这种方式,您告诉编译器查找名为“EventDate”而不是“date”的属性。请编辑您的问题以显示数据库中
/Events
处的数据(作为文本,请不要截图)。您可以通过单击溢出菜单中的“导出JSON”链接来实现这一点(⠇) 请编辑您的问题,并添加弗兰克·范·帕夫伦要求的内容,同时请用@回答。@AlexMamo编辑了问题
{
"CSE Notification" : {
"cse notification" : "Computer Science and Engineering"
},
"Central Notification" : {
"central notification" : "Inn-sha-ALLAH we'll be doing"
},
"Civil Notification" : {
"civil notification" : "civil"
},
"ECE Notification" : {
"ece notification" : "ece"
},
"EEE Notification" : {
"eee notification" : "eee"
},
"Events" : {
"21:00" : {
"EventDate" : "08/05/21",
"EventDescription" : "laptops",
"EventTime" : "21:00",
"EventTitle" : "Lenovo",
"EventVenue" : "Hyderabad"
},
"5:16" : {
"EventDate" : "17/05/21",
"EventDescription" : "To retrieve",
"EventTime" : "5:16",
"EventTitle" : "Trying",
"EventVenue" : "Hyderabad"
}
},
"Examination_Branch_Notification" : {
"em_noti" : "AstagfiruILLAH"
},
"IT Notification" : {
"it notification" : "Information Technology"
},
"MBA Notification" : {
"mba notification" : "mba"
},
"MECH Notification" : {
"mech notification" : "MECH"
},
"M_TECH_Notification" : {
"mTech" : "Master of Technology"
}
}
@PropertyName("EventDate")
public String getDate() {
return date;
}