0

I have been trying to implement firebase ui in my app with recyclerview. I have items on my firebase database which i want to with firebase ui recycler view. So far, i think i have done everything right, however, when i run my app it still shows blank. Any help would be greatly appreciated.

public class UsersActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private Query query;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_users);
        query = FirebaseDatabase.getInstance().getReference().child("Users");
        mRecyclerView = findViewById(R.id.recycler_view);
        mRecyclerView.setHasFixedSize(true);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    }

    @Override
    protected void onStart() {
        super.onStart();
        FirebaseRecyclerOptions <Users> firebaseRecyclerOptions = new FirebaseRecyclerOptions.Builder<Users>()
                .setQuery(query, Users.class).build();
        FirebaseRecyclerAdapter firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(firebaseRecyclerOptions){

            @NonNull
            @Override
            public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                View mView = LayoutInflater.from(parent.getContext()).inflate(R.layout.users_single_layout, parent,false);
                return new UsersViewHolder(mView);
            }

            @Override
            protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull Users model) {
                holder.setName(model.getName());

            }
        };
        mRecyclerView.setAdapter(firebaseRecyclerAdapter);
    }
    public static class UsersViewHolder extends RecyclerView.ViewHolder{
View mView;
        UsersViewHolder(View itemView) {
            super(itemView);
            mView = itemView;
        }
        public void setName (String name){
            TextView mName = mView.findViewById(R.id.user_name);
            mName.setText(name);
        }
    }
}
Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
Ben Ajax
  • 668
  • 2
  • 13
  • 27

1 Answers1

0

You need to add the following:

The FirebaseRecyclerAdapter uses an event listener to monitor changes to the Firebase query. To begin listening for data, call the startListening() method. You may want to call this in your onStart() method. Make sure you have finished any authentication necessary to read the data before calling startListening() or your query will fail.

@Override
protected void onStart() {
super.onStart();
firebaseRecyclerAdapter.startListening();
}

@Override
protected void onStop() {
super.onStop();
firebaseRecyclerAdapter.stopListening();
 }

more info here:

https://github.com/firebase/FirebaseUI-Android/tree/master/database

Peter Haddad
  • 78,874
  • 25
  • 140
  • 134