首页 > 解决方案 > 检查云 Firestore 数据库中是否已存在用户名、电子邮件和电话号码数据

问题描述

我正在尝试检查云 Firestore 中是否已存在用户名、电子邮件和电话号码数据。

 private fun checkExistence(username: String, email: String, phonenumber: String): Boolean {
        val query: Query =
            db.collection("users").whereEqualTo("username", username).whereEqualTo("email", email)
                .whereEqualTo("phonenumber", phonenumber)
        query.get().addOnCompleteListener { task ->
            if (task.isSuccessful) {
                for (documentSnapshot in task.result!!) {
                    val userName = documentSnapshot.getString("username")
                    val userEmail = documentSnapshot.getString("email")
                    val userPhone = documentSnapshot.getString("phonenumber")
                    when {
                        userName == username -> {
                            Log.d(TAG, "User Exists")
                            Toast.makeText(this, "Username exists", Toast.LENGTH_SHORT).show()
                        }
                        userEmail == email -> {
                            Log.d(TAG, "Email Exists")
                            Toast.makeText(this, "Email exists", Toast.LENGTH_SHORT).show()
                        }
                        userPhone == phonenumber -> {
                            Log.d(TAG, "Phone number Exists")
                            Toast.makeText(this, "Phone number exists", Toast.LENGTH_SHORT).show()
                        }
                    }
                }
            }
            if (task.result!!.size() == 0) {
                Log.d(TAG, "User not Exists")
                //You can store new user information here
                Toast.makeText(this, "User not Exists", Toast.LENGTH_SHORT).show()
            }
        }
        return true
    }

如果每个数据都存在,我期待祝酒,但代码只执行第一个检查,即用户名检查,它不检查电子邮件或电话号码。

标签: androidfirebasekotlingoogle-cloud-firestore

解决方案


推荐阅读