У меня есть коллекция документов, в которой я отображаю только одно значение поля, то есть имя, и оно отображается отлично, но когда я использую опцию поиска, я не могу получить муравей из поля, извлеченного из поиска. Я использую приведенную ниже функцию для поиска в базе данных 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);
}