When I run my application, the RecyclerView
is always shown blank in the activity. I did code with the normal RecyclerView
as well firebaseRecyclerOptions helps with FirebaseAdapter
, but lists not showing any data. The data is available on both Realtime Database and Cloud FireStore, but I don't get any data in RecyclerView
.
Adapter class
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 );
}
}
}
Activity.xml
public class FeedsActivity extends AppCompatActivity {
private FirebaseFirestore firebaseFirestore = FirebaseFirestore.getInstance ( );
private CollectionReference collectionReference = firebaseFirestore.collection ( "FeedBacks" );
private FeedsAdapter feedsAdapter;
RecyclerView feedRecyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate ( savedInstanceState );
setContentView ( R.layout.activity_feeds );
setUpRecyclerView();
}
private void setUpRecyclerView() {
Query query = collectionReference.orderBy ( "Fname", Query.Direction.ASCENDING );
FirestoreRecyclerOptions <Fmodel> options = new FirestoreRecyclerOptions.Builder<Fmodel>().setQuery ( query,Fmodel.class ).build ();
feedsAdapter = new FeedsAdapter ( options );
feedRecyclerView = (RecyclerView) findViewById ( R.id.feedrecycler );
feedRecyclerView.setHasFixedSize ( true );
feedRecyclerView.setLayoutManager ( new LinearLayoutManager ( this ) );
feedRecyclerView.setAdapter ( feedsAdapter);
}
@Override
protected void onStart() {
super.onStart ( );
feedsAdapter.startListening ();
Toast.makeText ( this, "fetch on", Toast.LENGTH_SHORT ).show ( );
}
@Override
protected void onStop() {
super.onStop ( );
feedsAdapter.stopListening ();
Toast.makeText ( this, "fetch off", Toast.LENGTH_SHORT ).show ( );
}
}
model class
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;
}
}