android - 检查云 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
}
如果每个数据都存在,我期待祝酒,但代码只执行第一个检查,即用户名检查,它不检查电子邮件或电话号码。
解决方案
推荐阅读
- c# - FileSystemWatcher - 过滤以识别除匹配字符串的文件之外的所有文件
- javascript - 为什么我的 JavaScript 日期/时间对象存储为地图而不是 Cloud Firestore 中的时间戳?
- excel - 在 VBA 中引用命名范围
- c# - Web Api 属性路由与 POST 请求不匹配
- c++ - 使用全局 lua_State* 变量
- microsoft-graph-api - 实际工作示例代码或指南与实际工作代码 1. 验证 C# .net 核心控制台应用程序和 2. 调用?网络 API
- python - 如何在 csv 文件中表示嵌套值?我想将文件无缝加载到(嵌套)python 字典中
- azure-devops - 如果有人在 Azure devops 上@提及我,如何让 Microsoft Flow 在团队中通知我
- amazon-web-services - 如何使用 CloudFormation 中的 CodeBuild 指定 GitHub 访问令牌
- haskell - 为什么这个镜头功能需要类型签名?