0

I am trying to get the list of users except the current user in recyclerview from the Firebase. How can i filter the current user from the recyclerview?

Here is my Firebase data. If the current user is "Praveen Chowdary" I should only get "Srikar" in my recyclerview.

Here is my JAVA file

public class FriendsFragment extends Fragment {

RecyclerView recyclerView;
DatabaseReference dbreference;
StorageReference sreference;
FirebaseUser currentUser;
FirebaseAuth fbAuth;
View v;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    Context c = getContext();
    v = inflater.inflate(R.layout.friends_fragment_layout, null);
    recyclerView = (RecyclerView) v.findViewById(R.id.rview);
    recyclerView.setHasFixedSize(true);

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

    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
    fbAuth = FirebaseAuth.getInstance();
    currentUser = fbAuth.getCurrentUser();
    return v;
}

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

    final String uid = currentUser.getUid();
    FirebaseRecyclerAdapter<UserElements, UserViewHolder> fbradapter = new FirebaseRecyclerAdapter<UserElements, UserViewHolder>(
            UserElements.class,
            R.layout.members_row_model,
            UserViewHolder.class,
            dbreference
    ) {
        @Override
        protected void populateViewHolder(UserViewHolder viewHolder, UserElements model, int position) {


                viewHolder.setTitle(model.getName());
                viewHolder.setDescription(model.getMobile());
                viewHolder.setImage(getActivity(), model.getProfilepic());

        }
    };

    recyclerView.setAdapter(fbradapter);

}


public static class UserViewHolder extends RecyclerView.ViewHolder{
    View view;
    public UserViewHolder(View itemView) {
        super(itemView);
        view = itemView;
    }

    public void setTitle(String title){
        TextView user = (TextView) view.findViewById(R.id.userName);
        user.setText(title);
    }
    public void setDescription(String desc){
        TextView mobile = (TextView) view.findViewById(R.id.userNumber);
        mobile.setText(desc);
    }
    public void setImage(final Context ctx, final String image){
        final CircleImageView profilePic = (CircleImageView) view.findViewById(R.id.userPic);
        Picasso.with(ctx).load(image).into(profilePic);
    }
}

}

Here is my UserElements.java

public class UserElements {
private String mobile, name, profilepic;

public UserElements(String mobile, String name, String profilepic) {
    this.mobile = mobile;
    this.name = name;
    this.profilepic = profilepic;
}

public UserElements(){}

public String getMobile() {
    return mobile;
}

public void setMobile(String mobile) {
    this.mobile = mobile;
}

public String getName() {
    return name;
}

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

public String getProfilepic() {
    return profilepic;
}

public void setProfilepic(String profilepic) {
    this.profilepic = profilepic;
}

}

Please help me out..

Thanks in advance.

Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
Praveen
  • 220
  • 1
  • 2
  • 15
  • 1
    You can't filter elements with FirebaseRecyclerAdapter. You'll either have to pass it a Query that yields what you want to display, or create your own Adapter with results you've filtered yourself. – Doug Stevenson Jul 12 '17 at 23:53
  • Also see https://stackoverflow.com/questions/39360854/how-to-exclude-item-from-a-firebaserecycleradapter and https://stackoverflow.com/questions/41223413/how-to-hide-an-item-from-recycler-view-on-a-particular-condition – Frank van Puffelen Jul 13 '17 at 00:28

0 Answers0