RecyclerView для пользователей пуст - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь показать пользователям их первичный ключ в RecyclerView, используя базу данных Firebase Realtime, но каждый раз, когда я пробую, RecyclerView пуст.Я перепробовал множество учебных пособий, но ничего не помогло. Вот как выглядит моя база данных:

1

Это класс, в котором я использовал RecyclerView

public class UsersActivity extends AppCompatActivity {
    private RecyclerView userslist;
    private DatabaseReference ref;
    private List<Users> mUsers;

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate ( savedInstanceState );
        setContentView ( R.layout.activity_users );
        ref = FirebaseDatabase.getInstance ().getReference ("users");

        userslist = (RecyclerView) findViewById ( R.id.users_list );


        userslist.setLayoutManager ( new LinearLayoutManager ( this ) );
       mUsers=new ArrayList<> (  );
       readUsers ();

ref.addValueEventListener ( new ValueEventListener () {
    @Override
    public void onDataChange (@NonNull DataSnapshot dataSnapshot) {
        for(DataSnapshot snapshot:dataSnapshot.getChildren ()){
            Users users=dataSnapshot.getValue (Users.class);
            mUsers.add ( users );
        }
    }

    @Override
    public void onCancelled (@NonNull DatabaseError databaseError) {

    }
} );
    }

    public void readUsers(){
        FirebaseUser firebaseUser= FirebaseAuth.getInstance ().getCurrentUser ();
        DatabaseReference reference=FirebaseDatabase.getInstance ().getReference ("users");
        reference.addValueEventListener ( new ValueEventListener () {
            @Override
            public void onDataChange (@NonNull DataSnapshot dataSnapshot) {




            }

            @Override
            public void onCancelled (@NonNull DatabaseError databaseError) {

            }
        } );
    }

    @Override
    protected void onStart () {
        super.onStart ();
        FirebaseRecyclerOptions<Users> options = new FirebaseRecyclerOptions.Builder<Users> ()
                .setQuery ( ref, Users.class )
                .build ();
        FirebaseRecyclerAdapter<Users, FindFriendViewHolder> adapter = new FirebaseRecyclerAdapter<Users, FindFriendViewHolder> ( options ) {
            @Override
            protected void onBindViewHolder (@NonNull FindFriendViewHolder findFriendViewHolder, int i, @NonNull Users users) {
                findFriendViewHolder.userName.setText ( users.getName () );

            }

            @NonNull
            @Override
            public FindFriendViewHolder onCreateViewHolder (@NonNull ViewGroup parent, int viewType) {
                View view = LayoutInflater.from ( parent.getContext () ).inflate ( R.layout.users_template, parent, false );
                FindFriendViewHolder viewHolder = new FindFriendViewHolder ( view );
                return viewHolder;
            }
        };
        userslist.setAdapter ( adapter );
       adapter.startListening ();
    }

    public static class FindFriendViewHolder extends RecyclerView.ViewHolder {
        TextView userName;
        ImageView profileImage;

        public FindFriendViewHolder (@NonNull View itemView) {
            super ( itemView );
            userName = itemView.findViewById ( R.id.username1 );
            profileImage = itemView.findViewById ( R.id.profilepicture );

        }


    }
}

Адаптер для имени пользователя

public class Users {
    public String name;
    public Users(){}
    public Users(String name){
    this.name=name;}
    public String getName () {
        return name;
    }

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


}

Я ожидаю, что RecyclerView будет заполнен всеми пользователями после их первичного ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...