0

I am working on a Firebase project where i want to show the list of all the user from my database in a recyclerView, i am using firebase ui to populate the recyclerview but it shows nothing. right now i am just want to show the name of the user.

sorry for bad english.

Here is my database image from where i want to get data. DataBase Image

Here in onStart method i am populating the recylerView.

RecyclerView Activity

    package com.inabdev.lapitchat;

    import android.os.Bundle;
    import android.support.annotation.NonNull;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.LinearLayoutManager;
    import android.support.v7.widget.RecyclerView;
    import android.support.v7.widget.Toolbar;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.TextView;
    import android.widget.Toast;
    import com.firebase.ui.database.FirebaseRecyclerAdapter;
    import com.firebase.ui.database.FirebaseRecyclerOptions;
    import com.google.firebase.database.DatabaseReference;
    import com.google.firebase.database.FirebaseDatabase;
    import com.google.firebase.database.Query;

    public class AllUsersActivity extends AppCompatActivity {

    private Toolbar allUsers_toolbar;
    private RecyclerView allUsersList;

    private DatabaseReference mAllUsersDatabases;

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

        allUsers_toolbar = (Toolbar) findViewById(R.id.all_users_appbar);
        setSupportActionBar(allUsers_toolbar);
        getSupportActionBar().setTitle("All Users");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        mAllUsersDatabases = FirebaseDatabase.getInstance().getReference().child("users");

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

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

        Query query = FirebaseDatabase.getInstance().getReference().child("users");

        FirebaseRecyclerOptions<AllUsersModel> options = new FirebaseRecyclerOptions.Builder<AllUsersModel>()
                .setQuery(query, AllUsersModel.class)
                .build();

        FirebaseRecyclerAdapter<AllUsersModel, AllUserViewHolder> adapter = new FirebaseRecyclerAdapter<AllUsersModel, AllUserViewHolder>(options) {

            @Override
            protected void onBindViewHolder(@NonNull AllUserViewHolder holder, int position, @NonNull AllUsersModel model) {

                holder.setName(model.getName());
                Toast.makeText(AllUsersActivity.this, "Name is : " + model.getName(),Toast.LENGTH_SHORT).show();
            }
            @NonNull
            @Override
            public AllUserViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

                View view = LayoutInflater.from(viewGroup.getContext())
                        .inflate(R.layout.single_user_ui, viewGroup, false);

                return new AllUserViewHolder(view);
            }
        };

        adapter.startListening();
        allUsersList.setAdapter(adapter);
    }
}

    class AllUserViewHolder extends RecyclerView.ViewHolder {
    View mView;

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

        mView = itemView;
    }

    public void setName(String name) {

        TextView mUsername = (TextView) mView.findViewById(R.id.single_userName);
        mUsername.setText(name);
    }
}

Model Class

package com.inabdev.lapitchat;
public class AllUsersModel {

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

    public AllUsersModel() {
    }

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

    public String getName() {
        return name;
    }

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

    public String getStatus() {
        return status;
    }

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

    public String getImage() {
        return image;
    }

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

    public String getThumb_image() {
        return thumb_image;
    }

    public void setThumb_image(String thumb_image) {
        this.thumb_image = thumb_image;
    }
}
inabdev
  • 11
  • 1
  • 7
  • First, copy and past the code don't put it on image like that. second your model must have all the getters and the setter, also data must have the same structure at your database – Oussema Aroua Dec 21 '18 at 19:55
  • **[This](https://stackoverflow.com/questions/49383687/how-can-i-retrieve-data-from-firebase-to-my-adapter/49384849)** is a recommended way in which you can retrieve data from a Firebase Realtime database and display it in a `RecyclerView` using `FirebaseRecyclerAdapter`. – Alex Mamo Dec 22 '18 at 12:58

0 Answers0