gpt4 book ai didi

ios - 检查 firebase 数据库中是否存在用户名。

转载 作者:可可西里 更新时间:2023-11-01 01:00:01 26 4
gpt4 key购买 nike

我正在尝试通过 UI 中的@IBAction 从用户那里获取用户名。

我的目标是检查用户名是否已存在于 Firebase 中。如果不存在,则注册它。如果它确实存在,我想做一些其他的事情。

这是我的代码。

@IBAction func enterUsername(){

let enteredUsername = usernameText!.text!
let namesRef = ref.childByAppendingPath("/usernames/\(enteredUsername)")

namesRef.observeEventType(.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
}
})
}

我遇到的问题是,如果用户名是唯一的(不存在),那么 if/else 的两个打印语句都在运行。输出:第一 block 第二 block

如果名称不是唯一的,它会正确地跳过 if/else 的 if 部分。

为什么 if/else 语句的两个部分都在运行?

感谢您的帮助。

最佳答案

您看到的行为确实是有意为之。由于您附加了一个观察者,第一个 if block 正在为一个唯一名称运行,但在该 block 内,您正在设置一个值。

这将再次触发回调,这次将通过 else block 运行。

更改此代码的正确方法是使用observeSingleEventOfType,这样您只读取一次值而不是连续观察它。

关于ios - 检查 firebase 数据库中是否存在用户名。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35802392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com