Search code examples
javaandroidfirebaseandroid-recyclerviewfirebaseui

Populating RecyclerView from firebase database


I am new to Android developing and trying to display data from Firebase Database to Recyclerview but when I run the application the Users Activity is blank or nothing displayed on my RecyclerView.

I'm stuck and still the output is the same: nothing is displayed.

UsersActivity:

private Toolbar mToolbar;

private RecyclerView mUsersList;

private DatabaseReference mUsersDatabase;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_users);

    mToolbar = (Toolbar) findViewById(R.id.users_appBar);
    setSupportActionBar(mToolbar);

    getSupportActionBar().setTitle("Users");
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    mToolbar.setTitleTextColor(Color.WHITE);
    mToolbar.setSubtitleTextColor(Color.WHITE);

    mUsersDatabase = FirebaseDatabase.getInstance().getReference().child("Users");

    mUsersList = (RecyclerView) findViewById(R.id.users_list);
    mUsersList.setHasFixedSize(true);
    mUsersList.setLayoutManager(new LinearLayoutManager(this));

}

@Override
protected void onStart() {
    super.onStart();

    FirebaseRecyclerAdapter<Users, UsersViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(
            Users.class,
            R.layout.users_single_layout,
            UsersViewHolder.class,
            mUsersDatabase

    ) {
        @Override
        protected void populateViewHolder(UsersViewHolder usersViewHolder, Users users, int i) {
            usersViewHolder.setName(users.getName());
        }

    };
    mUsersList.setAdapter(firebaseRecyclerAdapter);
}


public static class UsersViewHolder extends RecyclerView.ViewHolder
{
    View mView;

    public UsersViewHolder(@NonNull View itemView) {
        super(itemView);

        mView = itemView;

    }
    public void setName(String name)
    {
        TextView userNameView = (TextView) mView.findViewById(R.id.user_name);
        userNameView.setText(name);
    }
}

and this is my code in my Model class which is Users

private String name;
private String image;
private String status;

public Users()
{

}

public Users(String name, String image, String status) {
    this.name = name;
    this.image = image;
    this.status = status;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

Solution

  • You are using an old version of FirebaseUI, you need to remove mUsersList.setHasFixedSize(true); for the data to be displayed