Firestore即时搜索会跳过一些结果

时间:2019-06-07 06:46:27

标签: android firebase firebase-realtime-database google-cloud-firestore

我在edittext上使用 TextChangeListener ,并在 afterTextChanged() 上调用了一个函数,该函数查询firestore集合(“用户”)中的可用用户名

现在的问题是,如果用户在编辑文本中缓慢键入内容,那么就没有问题了。该代码工作正常。但是,如果用户键入速度很快,则侦听器会跳过某些结果,或者未按触发的顺序接收到结果,因此在edittext中使用最终用户名的结果不是最佳选择。该如何解决?

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.
             }
}

0 个答案:

没有答案