You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修正Firebase Firestore手机号存在判断始终显示存在的问题

问题修复:Firebase Firestore手机号存在判断错误

你的代码逻辑有误,task.isSuccessful仅代表查询请求本身执行成功(没有网络或权限等错误),和是否查到匹配数据无关。所以无论手机号是否存在,只要请求没失败,都会触发“客户已存在”的提示。

修复后的代码如下:

bbdd.collection("Taxi").whereEqualTo("number", number).get().addOnCompleteListener { task ->
    if (task.isSuccessful) {
        // 判断查询结果是否包含匹配的文档
        if (!task.result.isEmpty) {
            Toast.makeText(applicationContext, "客户已存在", Toast.LENGTH_LONG).show()
        } else {
            Toast.makeText(applicationContext, "客户不存在", Toast.LENGTH_LONG).show()
        }
    } else {
        // 请求失败时提示错误,而非直接判断客户不存在
        Toast.makeText(applicationContext, "查询失败:${task.exception?.message}", Toast.LENGTH_LONG).show()
    }
}

关键说明:

  • 当查询请求成功后,通过task.result.isEmpty判断是否找到匹配的手机号:
    • !task.result.isEmpty:存在匹配文档,提示“客户已存在”
    • task.result.isEmpty:无匹配文档,提示“客户不存在”
  • 请求失败分支(task.isSuccessful为false)改为提示查询错误信息,避免混淆“请求失败”和“客户不存在”两种场景

内容的提问来源于stack exchange,提问作者user21771755

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:45:02