Failed to implement filter in SearchView. (SearchView + FirebaseRecyclerAdapter)

I am using FirebaseRecyclerAdapter Firebase-UI. I cannot implement a filter in SearchView.

My database:

enter image description here

My question is:

How to search in FirebaseDatabase by character using FirebaseRecyclerAdapter?
(I want to search by username)

My code: I used this method to search, what is wrong in my code?

 mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {

            Query Q = mAllUsersDatabaseRef.child("User").orderByChild("username").startAt(newText).endAt("~");

            FirebaseRecyclerAdapter<User, SearchFeedFragment.AllRegisterUserViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<User, SearchFeedFragment.AllRegisterUserViewHolder>(
                    User.class, R.layout.row_search_all_users, SearchFeedFragment.AllRegisterUserViewHolder.class, Q) {
                @Override
                protected void populateViewHolder( SearchFeedFragment.AllRegisterUserViewHolder viewHolder,User model, int position) {


                    viewHolder.setUserName(model.getUsername());
                    viewHolder.setUserProfilePic(Common.stringToBitMap(model.getProfilepicurl()));

                }
            };
            mRecyclerViewSearch.setAdapter(firebaseRecyclerAdapter);
            return false;
        }
    });


public static class AllRegisterUserViewHolder extends RecyclerView.ViewHolder {

        View mView;

        ImageView mImgProfileImage = (ImageView) itemView.findViewById(R.id.iv_searchProfilePic);
        TextView mTxtProfileName = (TextView) itemView.findViewById(R.id.txt_searchProfileName);

        public AllRegisterUserViewHolder(View itemView) {
            super(itemView);
            itemView = mView;
        }

        public void setUserName(String username) {
            mTxtProfileName.setText(username);
        }

        public void setUserProfilePic(Bitmap image) {
            mImgProfileImage.setImageBitmap(image);
        }
}
+4
source share
1 answer

Implementing Perfect Search with Firebase Real-Time Database

, 2: Firebase, Plug-and-Play

, , Firebase Realtime .

.

Query Q = mAllUsersDatabaseRef.child("User").orderByChild("username").startAt(newText).endAt(newText+"\uf8ff");

. startAt(), endAt(), equalTo(), limitToFirst() limitToLast(), , , firebase.

, Firebase Realtime.

+1

Source: https://habr.com/ru/post/1678326/


All Articles