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

Firestore使用Collection查询时如何判断数据不存在并为EditText设错误提示

解决方案

你现在的逻辑缺失了「查询成功但无匹配数据」的判断分支:Firestore 只要请求本身执行成功,哪怕没有匹配到对应邀请码的文档,task.isSuccessful() 也会返回 true,不会走到异常分支,你需要在查询成功后优先判断返回结果是否为空,空值对应邀请码不存在的场景,直接设置错误提示即可。

修改后的代码示例:

CollectionReference reference = firestore.collection("Users");
reference.whereEqualTo("ReferCode", binding.refferalEd.getText().toString().toUpperCase()).get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    QuerySnapshot querySnapshot = task.getResult();
                    // 新增判断:查询结果为空,说明邀请码不存在
                    if (querySnapshot.isEmpty()) {
                        dialog.dismiss();
                        // 给EditText设置错误提示
                        binding.refferalEd.setError("输入的邀请码不存在,请检查后重试");
                        // 可选:让EditText获取焦点,方便用户直接修改
                        binding.refferalEd.requestFocus();
                        return;
                    }
                    // 原有匹配到邀请码的逻辑
                    for (QueryDocumentSnapshot snapshot : querySnapshot) {
                        String RefreeMobile = snapshot.getString("Mobile");
                        Log.e(TAG, "mobile: " + RefreeMobile);
                        dialog.dismiss();
                        WriteBatch batch = firestore.batch();
                        // 此处省略部分业务代码
                    }
                } else {
                    Log.e(TAG, "Error getting documents: ", task.getException());
                    dialog.dismiss();
                    // 可选:查询异常时也给用户对应提示
                    Toast.makeText(YourActivity.this, "验证邀请码失败,请检查网络后重试", Toast.LENGTH_SHORT).show();
                }
            }
        });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:15:05