My recyclerView is loading images and text from the firebase Realtime Database without any problems and I can scroll it fast or slow but when I get to the last item it's crashing. What could be the problem?
Bellow is my logcat
2020-04-09 20:05:05.404 24971-24971/com.example.realestatemw E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.realestatemw, PID: 24971 com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.realestatemw.Agent at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(com.google.firebase:firebase-database@@19.2.1:435) at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(com.google.firebase:firebase-database@@19.2.1:231) at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(com.google.firebase:firebase-database@@19.2.1:79) at com.google.firebase.database.DataSnapshot.getValue(com.google.firebase:firebase-database@@19.2.1:203) at com.firebase.ui.database.ClassSnapshotParser.parseSnapshot(ClassSnapshotParser.java:29) at com.firebase.ui.database.ClassSnapshotParser.parseSnapshot(ClassSnapshotParser.java:15) at com.firebase.ui.common.BaseCachingSnapshotParser.parseSnapshot(BaseCachingSnapshotParser.java:36) at com.firebase.ui.common.BaseObservableSnapshotArray.get(BaseObservableSnapshotArray.java:52) at com.firebase.ui.database.FirebaseRecyclerAdapter.getItem(FirebaseRecyclerAdapter.java:109) at com.firebase.ui.database.FirebaseRecyclerAdapter.onBindViewHolder(FirebaseRecyclerAdapter.java:149) at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065) at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107) at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012) at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279) at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:288) at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:345) at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:361) at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:368) at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:399) at android.os.Handler.handleCallback(Handler.java:836) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loop(Looper.java:203) at android.app.ActivityThread.main(ActivityThread.java:6368) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924) 2020-04-09 20:05:05.458 1176-1281/? E/PROXIMITY: ProximitySensor: unknown event (type=3, code=0) 2020-04-09 20:05:05.526 1728-1793/? E/MFI-Conn: ( mdfx_conn_conn, 76) mdfx_conn_conn(): the MFI connection fails!! 2020-04-09 20:05:05.526 1728-1793/? E/MFI-Conn: ( mdfx_conn_init_legacy, 363) mdfx_conn_init_legacy(): mdfx_conn_conn() error!! 2020-04-09 20:05:05.526 1728-1793/? E/MFI-RDS: ( rds_mal_conn_init, 819) [RDS][rds_mal_conn_init] mdfx_conn_init_legacy gets NULLLLLLL!!!!! 2020-04-09 20:05:05.709 1176-1281/? E/PROXIMITY: ProximitySensor: unknown event (type=3, code=0) 2020-04-09 20:05:06.529 1728-1793/? E/MFI-Conn: ( mdfx_conn_conn, 76) mdfx_conn_conn(): the MFI connection fails!! 2020-04-09 20:05:06.529 1728-1793/? E/MFI-Conn: ( mdfx_conn_init_legacy, 363) mdfx_conn_init_legacy(): mdfx_conn_conn() error!! 2020-04-09 20:05:06.529 1728-1793/? E/MFI-RDS: ( rds_mal_conn_init, 819) [RDS][rds_mal_conn_init] mdfx_conn_init_legacy gets NULLLLLLL!!!!! 2020-04-09 20:05:06.680 23860-23898/? E/StreamController: Different sized entryTreeNode vs restored controllers: 10, 5 2020-04-09 20:05:06.969 1176-1281/? E/PROXIMITY: ProximitySensor: unknown event (type=3, code=0) 2020-04-09 20:05:07.218 1176-1281/? E/PROXIMITY: ProximitySensor: unknown event (type=3, code=0) 2020-04-09 20:05:07.532 1728-1793/? E/MFI-Conn: ( mdfx_conn_conn, 76) mdfx_conn_conn(): the MFI connection fails!! 2020-04-09 20:05:07.532 1728-1793/? E/MFI-Conn: ( mdfx_conn_init_legacy, 363) mdfx_conn_init_legacy(): mdfx_conn_conn() error!! 2020-04-09 20:05:07.533 1728-1793/? E/MFI-RDS: ( rds_mal_conn_init, 819) [RDS][rds_mal_conn_init] mdfx_conn_init_legacy gets NULLLLLLL!!!!! 2020-04-09 20:05:07.719 1176-1281/? E/PROXIMITY: ProximitySensor: unknown event (type=3, code=0) 2020-04-09 20:05:07.969 1176-1281/? E/PROXIMITY: ProximitySensor: unknown event (type=3, code=0) 2020-04-09 20:05:08.219 1176-1281/? E/PROXIMITY: ProximitySensor: unknown event (type=3, code=0) 2020-04-09 20:05:08.469 1176-1281/? E/PROXIMITY: ProximitySensor: unknown event (type=3, code=0)
Below is my code
public class HomeFragment extends Fragment {
private RecyclerView recyclerView;
FirebaseRecyclerAdapter<Agent, AgentHolder> firebaseRecyclerAdapter;
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.home_fragment, container, false);
//1. get a reference to recyclerView
recyclerView = (RecyclerView) view.findViewById(R.id.recyclerview);
recyclerView.setHasFixedSize(true);
// 2. set layoutManger
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
ViewCompat.setNestedScrollingEnabled(recyclerView,false);
FirebaseRecyclerOptions<Agent> options = new FirebaseRecyclerOptions.Builder<Agent>()
.setQuery(FirebaseDatabase.getInstance().getReference().child("Buy"), Agent.class)
.build();
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Agent, AgentHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull AgentHolder holder, int position, @NonNull Agent model) {
holder.setCity(model.getCity());
holder.setTown(model.getTown());
holder.setImage(holder.mView.getContext(), model.getImage());
}
@NonNull
@Override
public AgentHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view1 = LayoutInflater.from(parent.getContext()).inflate(R.layout.individual_row, parent,
false);
return new AgentHolder(view1);
}
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
return view;
}
@Override
public void onResume() {
super.onResume();
firebaseRecyclerAdapter.startListening();
}
@Override
public void onDestroy() {
super.onDestroy();
firebaseRecyclerAdapter.stopListening();
}
}