如何验证 Firebase 上的用户名是否可用?
How can I verify if a username on Firebase is available?
在我的 Swift 应用程序中,注册用户时,系统会提示用户 select 用户名。然后,此用户名将存储在 Firebase 实时数据库中,如下所示:self.ref.child("users").child(user!.uid).setValue(["username": usernameResponse])
,其中用户名响应是用户输入的值。这是注册方法的一部分:
FIRAuth.auth()?.createUserWithEmail(email, password: passwordUltimate) { (user, error) in
// ... if error != nil {
我想在设置值之前验证用户名是否可用。我可以使用某种查询来检查是否没有重复项吗?
这是我的数据库,其中包含一些示例数据(qwerty12345 是 uid):
@IBAction func enterUsername(){
let enteredUsername = usernameText!.text!
let namesRef = ref.childByAppendingPath("/usernames/\(enteredUsername)")
namesRef.observeSingleEventType(.Value, withBlock: {
snap in
if (snap.value is NSNull){
let userNameAndUUID = ["Username" : enteredUsername, "UUID" : self.appDelegate.UUID]
namesRef.setValue(userNameAndUUID)
print("first block")
}else {
print("second block")
//do some other stuff
}
})
}
或者:
let checkWaitingRef = Firebase(url:"https://test.firebaseio.com/users")
checkWaitingRef.queryOrderedByChild("username").queryEqualToValue("\(username!)")
.observeEventType(.Value, withBlock: { snapshot in
if ( snapshot.value is NSNull ) {
print("not found)")
} else {
print(snapshot.value)
}
}
在我的 Swift 应用程序中,注册用户时,系统会提示用户 select 用户名。然后,此用户名将存储在 Firebase 实时数据库中,如下所示:self.ref.child("users").child(user!.uid).setValue(["username": usernameResponse])
,其中用户名响应是用户输入的值。这是注册方法的一部分:
FIRAuth.auth()?.createUserWithEmail(email, password: passwordUltimate) { (user, error) in
// ... if error != nil {
我想在设置值之前验证用户名是否可用。我可以使用某种查询来检查是否没有重复项吗?
这是我的数据库,其中包含一些示例数据(qwerty12345 是 uid):
@IBAction func enterUsername(){
let enteredUsername = usernameText!.text!
let namesRef = ref.childByAppendingPath("/usernames/\(enteredUsername)")
namesRef.observeSingleEventType(.Value, withBlock: {
snap in
if (snap.value is NSNull){
let userNameAndUUID = ["Username" : enteredUsername, "UUID" : self.appDelegate.UUID]
namesRef.setValue(userNameAndUUID)
print("first block")
}else {
print("second block")
//do some other stuff
}
})
}
或者:
let checkWaitingRef = Firebase(url:"https://test.firebaseio.com/users")
checkWaitingRef.queryOrderedByChild("username").queryEqualToValue("\(username!)")
.observeEventType(.Value, withBlock: { snapshot in
if ( snapshot.value is NSNull ) {
print("not found)")
} else {
print(snapshot.value)
}
}