我有一个应用程序,在用户使用Firebase身份验证后,它会将数据存储在Firebase数据库中。在存储数据之前,我想检查用户给出的用户名是否已经存在于数据库中。所以如果它不存在,我可以给用户这个唯一的用户名(就像每个用户都有一个唯一的用户名一样)。所以我有一个textField
用户输入他的用户名,然后按下一步。然后,应用程序应该检查用户名是否存在,并告诉用户是否需要更改它。检查用户是否存在Firebase 3.0 + swift
因此,代码我用来检查用户名存在:
let databaseRef = FIRDatabase.database().reference()
databaseRef.child("Users").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
if snapshot.hasChild(self.usernameTextField.text!){
print("user exist")
}else{
print("user doesn't exist")
}
})
所以每下一个按下按钮时,该代码就会被调用。问题在于结果始终与第一次搜索保持一致(即使在textField值更改后)。 例如,如果我搜索何塞,何塞和我的数据库存在,所以打印“用户存在”。但是当我将textField
更改为不存在的名称时,它仍显示“用户存在”。
很高兴听到您发现错误。在允许用户声明一个唯一的用户名时,还需要考虑一下这个问题:http://stackoverflow.com/questions/25294478/how-do-you-prevent-duplicate-user-properties-in-firebase –