Firebase Cloud Firestore Search Text, Что я делаю не так? - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть коллекция документов, в которой я отображаю только одно значение поля, то есть имя, и оно отображается отлично, но когда я использую опцию поиска, я не могу получить муравей из поля, извлеченного из поиска. Я использую приведенную ниже функцию для поиска в базе данных Firestore Cloud.

private void searchUsers(String recherche) {
        if (recherche.length() > 0)
            recherche = recherche.substring(0, 1).toUpperCase() + recherche.substring(1).toLowerCase();
        List<Users> mylist = new ArrayList<>();

        for(Users users : usersList) {
            if (users.getName() != null && users.getName().contains(recherche)) {
                mylist.add(users);
                usersListAdapter = new UsersListAdapter(getApplicationContext(), mylist);
                mMainlist.setLayoutManager(new LinearLayoutManager(this));
                mMainlist.setAdapter(usersListAdapter);
                usersListAdapter.notifyDataSetChanged();
            }

        }

    }

Но функция отправки пока не выдает результат, я использую эту функцию здесь

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.search_menu, menu);
            MenuItem item = menu.findItem(R.id.search);

            SearchView searchView = (SearchView)MenuItemCompat.getActionView(item);
            searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
                @Override
                public boolean onQueryTextSubmit(final String s) {

                    mFirestore.collection("CEA Form").whereEqualTo("name", s.toLowerCase())
                            .get()
                            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                                @Override
                                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                                    searchUsers(s);
                                }
                            })
                            .addOnFailureListener(new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    Toast.makeText(FormsActivity.this, "FAIL", Toast.LENGTH_SHORT).show();


                                }
                            });
                    return true;
                }

                @Override
                public boolean onQueryTextChange(String s) {
                    return false;
                }
            });

            return super.onCreateOptionsMenu(menu);

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