Firebase检查是否使用了用户名

时间:2019-04-13 20:38:07

标签: swift firebase firebase-realtime-database

我正在尝试检查用户名是否已被占用。为此,当用户注册时,其用户名将添加到单独的节点“ taken_usernames”

然后我编写了函数:

func isUserNameTaken(username: String) -> Bool {
    var available = true
    Database.database().reference().child("taken_usernames").child(username).observeSingleEvent(of: .value) { (snapshot) in
        if snapshot.exists() {
            SVProgressHUD.dismiss()
            self.showLoginError("Username Taken. Please Try Another")
            available = false
        }
    }
    return available
}

当按下注册按钮时,我创建了一个保护声明:

@objc func register() {
    guard isFormValid() else { return }
    guard isUserNameTaken(username: registerView.usernameTextField.text!) else { return }
...}

但是,我收到警告,说用户名已被使用,但是该功能的其余部分仍在运行,因此使用重复的用户名创建了一个新用户。为什么会这样?

0 个答案:

没有答案