Как отфильтровать FirebaseRecyclerOptions с помощью SearchBar - PullRequest
0 голосов
/ 06 июня 2019

Я создаю фрагмент, в котором у меня есть SearchBar для пользователей и RecyclerView для их отображения. Мой вопрос заключается в том, как изменить параметры FirebaseRecyclerView каждый раз, когда я что-то печатаю для поиска, я нашел решение с другим адаптером (не адаптером FirebaseRecyclerView), но он использует ArrayList.

Я хочу что-то подобное для опций.

//userList contains all users
private void searchUser(String s) {
    ArrayList<User> list = new ArrayList<>();
    for(User object : userList){
        String userName = object.Name + " " + object.Surname;
        if(userName.toLowerCase().contains(s.toLowerCase())){
            list.add(object);
        }
    }
    UserAdapter adapter = new UserAdapter(list);
    myUserList.setAdapter(adapter);
}

Как обновлять параметры каждый раз, когда я что-то печатаю в панели поиска?

Ответы [ 2 ]

2 голосов
/ 06 июня 2019

если вы знакомы с представлением переработчика пожарной базы, то представление переработчика пожарной базы дает эту функцию

firebase.database (). Ref (path). OrderByChild (). StartAt («введенное имя пользователя»);

startAt () является ключевым игроком для этого ... вам нужно настроить поисковый ключ в классе usermodel так, чтобы поисковый запрос firebase выбирал указанное поисковое слово из дерева datanode.and позже установлено в firebase recyclerview

1 голос
/ 11 июня 2019

Мне действительно нужен был запрос, как сказал @Black Mamba. Я использовал что-то вроде этого:

Query query;
    if(!(searchTxt.isEmpty())) {
        query = Ref.orderByChild("Surname").startAt(search).endAt(search + "\uf8ff");
    }
    else{
        query = Ref;
    }

и setOnQueryTextListener:

if (searchBar != null) {
        searchBar.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                firebaseSearch(newText);
                return true;
            }
        });

Метод firebaseSearch извлекает данные из базы данных.

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