0

Im using Recycler view to retrieve all users from firebase like below

@Override
    public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

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

        firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<AllUsers, AllUsersViewHolder>
                (AllUsers.class, R.layout.all_users_display_layout, AllUsersViewHolder.class, databaseReference) {
            @Override
            protected void populateViewHolder(AllUsersViewHolder viewHolder, AllUsers model, final int position) {
                viewHolder.setName(model.getName());

                viewHolder.view.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        String visit_user_id = getRef(position).getKey();

                        Intent intent = new Intent(getActivity(), UserProfilesActivity.class);
                        intent.putExtra("visit_user_id", visit_user_id);
                        startActivity(intent);
                    }
                });
            }
        };
        all_user_list.setAdapter(firebaseRecyclerAdapter);
    }

    public static class AllUsersViewHolder extends RecyclerView.ViewHolder {

        View view;

        public AllUsersViewHolder(View itemView) {
            super(itemView);
            view = itemView;
        }

        public void setName(String name) {
            TextView all_user_name = (TextView) view.findViewById(R.id.all_user_name);
            all_user_name.setText(name);
        }
    }

How can I retrieve users without the current users becasuse Im using this list to add friend scenario

and my database structure like below

users
    key
      name:xxxx
    key
      name:yyyy

please help me im new to these stuff

HemalHerath
  • 1,006
  • 2
  • 18
  • 38

1 Answers1

0

Its a list so:

databaseReference.orderByChild("id").equalTo(null).addChildEventListener(new ChildEventListener() {
                    @Override
                    public void onChildAdded(DataSnapshot dataSnapshot, String s) {        

                   String name=dataSnapshot.child("name").getValue().toString();

                    }

                    @Override
                    public void onChildChanged(DataSnapshot dataSnapshot, String s) {

                    }

                    @Override
                    public void onChildRemoved(DataSnapshot dataSnapshot) {

                    }

                    @Override
                    public void onChildMoved(DataSnapshot dataSnapshot, String s) {

                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });

Use ChildEventListener for lists it will iterate through the names inside the node users

So you can do this:

users
key
  name:xxxx
  id:true
key
  name:yyyy
Peter Haddad
  • 78,874
  • 25
  • 140
  • 134
  • Im retrieving data fine with above code I dont want to get logged in user in the list @Peter – HemalHerath Nov 19 '17 at 07:26
  • @HemalHerath check this https://stackoverflow.com/questions/39195191/firebase-query-to-exclude-data-based-on-a-condition/ I have also updated the answer – Peter Haddad Nov 19 '17 at 07:44
  • Peter Hadded if you have time please can you try this question https://stackoverflow.com/questions/47343123/android-widget-framelayout-cannot-be-cast-to-com-example-crowderia-chat-view-sna – HemalHerath Nov 19 '17 at 09:25
  • Peter Hadded if u know about camera in android can u help with this https://stackoverflow.com/questions/47505172/im-try-to-change-the-camera-when-button-click-back-to-front – HemalHerath Nov 27 '17 at 08:32