Skip to content Skip to sidebar Skip to footer

Android - How To Filter The Recyclerview Of Firebase?

I've recently added a searchBar to my Android Firebase app, but I really can't find how to filter data in my app. I need to search in 'title', 'desc' and 'username' childs, as seen

Solution 1:

First, you need to query your database, example

mQuery = mDatabase.orderByChild("Title").equalTo("your value") then go to your firebaseRecyclerAdapter and replace:

FirebaseRecyclerAdapter<Blog, BlogViewHolder> firebaseRecyclerAdapter = newFirebaseRecyclerAdapter<Blog, BlogViewHolder>(
            Blog.class,
            R.layout.blog_row,
            BlogViewHolder.class,
            mDatabase

    )

with:

final FirebaseRecyclerAdapter<Blog, BlogViewHolder> firebaseRecyclerAdapter = newFirebaseRecyclerAdapter<Blog, BlogViewHolder>(
            Blog.class,
            R.layout.blog_row,
            BlogViewHolder.class,
            mQuery

    )

To find out more you can check the documentation here: https://firebase.google.com/docs/reference/android/com/google/firebase/database/Query

and the FirebaseUI documentation: https://github.com/firebase/FirebaseUI-Android

This is what i did:

@OverridepublicbooleanonCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.main_menu, menu);

        SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.action_search));

        searchView.setOnQueryTextListener(newSearchView.OnQueryTextListener() {
            @OverridepublicbooleanonQueryTextSubmit(String query) {

                Intent searchIntent = newIntent(MainActivity.this, searchActivity.class);
                searchIntent.putExtra("search", query);
                startActivity(searchIntent);
                returnfalse;

            }

            @OverridepublicbooleanonQueryTextChange(String newText) {
                //??????returntrue;
            }
        });

        returnsuper.onCreateOptionsMenu(menu);



    }

and in the search activity:

String search = getIntent().getExtras().getString("search");
mQuerySearch = mDatabase.orderByChild("name").equalTo(search);

FirebaseRecyclerAdapter<Classified, searchActivity.ClassifiedViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Classified, searchActivity.ClassifiedViewHolder>(

                Classified.class,
                R.layout.classified_row,
                searchActivity.ClassifiedViewHolder.class,
                mQuerySearch

        )

Post a Comment for "Android - How To Filter The Recyclerview Of Firebase?"