I want to get the values from firebase, but I get this error, where is the problem?
private RecyclerView recyclerView;
private CamperSiteAdapter camperSiteAdapter;
private List<CamperSiteModel> camperSiteModel;
EditText seatch_bar;
private void readCampSite(){
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Campsite");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(seatch_bar.getText().toString().equals("")){
camperSiteModel.clear();
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
CamperSiteModel camperSiteModel1 = snapshot.getValue(CamperSiteModel.class);
camperSiteModel.add(camperSiteModel1);
}
camperSiteAdapter.notifyDataSetChanged();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
this is model code
public CamperSiteModel() {
}
public CamperSiteModel(String camperSiteID, String camperSiteName, String camperSiteImage, String camperSiteType, String camperSiteDistance, String camperSiteInfo, String camperSiteSummary, String camperSiteAddress, String camperSiteLatitude, String camperSiteLongitude, String camperSitePrice1, String camperSitePrice2, String camperSiteEmail, String camperSiteSub) {
CamperSiteID = camperSiteID;
CamperSiteName = camperSiteName;
CamperSiteImage = camperSiteImage;
CamperSiteType = camperSiteType;
CamperSiteDistance = camperSiteDistance;
CamperSiteInfo = camperSiteInfo;
CamperSiteSummary = camperSiteSummary;
CamperSiteAddress = camperSiteAddress;
CamperSiteLatitude = camperSiteLatitude;
CamperSiteLongitude = camperSiteLongitude;
CamperSitePrice1 = camperSitePrice1;
CamperSitePrice2 = camperSitePrice2;
CamperSiteEmail = camperSiteEmail;
CamperSiteSub = camperSiteSub;
}
this is the firebase database
Campsite
CamperSiteAddress: "90 Tasman Hwy, Orford TAS 7190"
CamperSiteDistance: ""
CamperSiteEmail: ""
CamperSiteImage: "https://media-cdn.tripadvisor.com/media/photo-s..."
CamperSiteInfo: "Raspins Beach"
CamperSiteLatitude: ""
CamperSiteLongitude: ""
CamperSiteName: "Raspins Beach"
CamperSitePrice1: "free"
CamperSitePrice2: "free"
CamperSiteSub: "TAS"
CamperSiteSummary: "Raspins Beach"
CamperSiteType: "Camp"
I don't know why this line was an error.
have I missed something? or where is the error?
is the model problem? or somewhere?
CamperSiteModel camperSiteModel1 = snapshot.getValue(CamperSiteModel.class);
error log
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.luvtas.campingau, PID: 11763
com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.luvtas.campingau.Model.CamperSiteModel
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(CustomClassMapper.java:436)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(CustomClassMapper.java:232)
at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(CustomClassMapper.java:80)
at com.google.firebase.database.DataSnapshot.getValue(DataSnapshot.java:203)
at com.luvtas.campingau.Fragment.ExploreFragment$3.onDataChange(ExploreFragment.java:128)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)