在注册 Firebase 之前检查用户名
Posted
技术标签:
【中文标题】在注册 Firebase 之前检查用户名【英文标题】:Checking username before signing up Firebase 【发布时间】:2019-05-17 22:46:20 【问题描述】:使用 snapshot.exists() 后,用户名将始终在注册时返回可用状态。如何更改我的代码以正确检查用户名是否已被使用?
这是数据库中“用户”下的json的sn-p:
"UserID#" :
"credentials" :
"name" : "testuser",
,
我的代码目前看起来像:
let usersDB = Database.database().reference()
var taken = false
usersDB.child("users").child("credentials").queryOrdered(byChild:"name").queryEqual(toValue: username.lowercased()).observeSingleEvent(of: .value, with: (snapshot) in
if snapshot.exists()
taken = true
print("Username is not available.")
usernameAlert()
else
print("User is available")
无论用户名是否已经被数据库获取,快照都会说它不存在。
我尝试过但没有成功的解决方案: check if the username exist in Firebase Query users in Firebase to check if username exists during sign up process Firebase querying for unique Username swift Check if user exists with username using Swift and Firebase Swift & Firebase | Checking if a user exists with a username
【问题讨论】:
请编辑您的问题以在users/credentials
下包含 JSON 的 sn-p(作为文本,请不要截图)。您可以通过单击Firebase Database console 上溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。
更新问题以包含 JSON sn-p
【参考方案1】:
您现在在/users/credentials
的每个子节点下检查名为name
的属性。相反,您想要的是检查 /users
的每个子节点以查找位于 credentials/name
的属性,您可以使用以下方法:
usersDB.child("users").queryOrdered(byChild:"credentials/name").queryEqual(toValue: ...
【讨论】:
以上是关于在注册 Firebase 之前检查用户名的主要内容,如果未能解决你的问题,请参考以下文章
如何检查 Firebase 数据库中用户输入数据的唯一性?迅速