Мгновенный поиск в Firestore пропускает некоторые результаты - PullRequest
0 голосов
/ 07 июня 2019

Я использую TextChangeListener для edittext и вызываю функцию на afterTextChanged () , которая запрашивает коллекцию firestore (" пользователи ") для доступных имен пользователей в коллекции.

Теперь проблема в том, что если пользователь медленно печатает в тексте редактирования, то проблем нет. код работает нормально. но если пользователь печатает очень быстро, слушатель пропускает некоторые результаты или результаты не принимаются в том порядке, в котором они были запущены, и поэтому результат с конечным именем пользователя в тексте редактирования не является идеальным. Как решить эту проблему?

edittext.addTextChangedListener(object : TextWatcher {
            override fun afterTextChanged(s: Editable?) {
                isUsernameAvailable(s.toString())

            }
            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
        })
private fun isUsernameAvailable(username:String){
   db.collection("users")
            //.orderBy("username")
            .whereEqualTo("username",username)
            .get()
            .addOnSuccessListener {documents->
                // showing the result if documents with username available or not.
             }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...