Я пытаюсь получить конкретного пользователя по почте с поиском в моем приложении.
В моей базе данных более 7000 пользователей, и с этим поисковым просмотром требуется от 5 до 10 или 15 секунд для фильтрации и передачи данных
@Override
public boolean onQueryTextSubmit(String s) {
searchQuery.startAt(s).endAt(s+"\uf8ff").limitToFirst(3).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
UserPojo user = snapshot.getValue(UserPojo.class);
Log.i(TAG, "onDataChange: " + user.getEmail());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return false;
}
проблема в том, сколько времени занимает фильтрация данных (от 5 до 15 секунд)
Есть ли способ фильтровать быстрее с лучшим запросом? или мне нужно сначала получить все данные, сохранить их локально, а затем отфильтровать их на стороне клиента? какие-либо предложения о том, как подойти к этому?
Кроме того, я заметил с профилировщиком, что каждый поиск занимает от 4 до 8 Мб сети, чтобы выполнить, это много сетевого использования для простого текстового запроса.
См. Использование сети здесь
спасибо