在我的应用中,我有一个简单的用户群,如下所示:
我要做的是简单地获取此列表一次,以便在新用户使用新用户名注册时检查用户名是否有效。
问题是,我发现检索数据的唯一方法是使用某种观察方法,这对我来说并不好。
我想要实现的逻辑(使用不起作用的检索方法):
// When user tries to sign up with a new username
let username = nicknameField.text?.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
self.usersRef.observeEventType(.Value) { (snapshot: FIRDataSnapshot) in
let dict = snapshot.value as! NSDictionary
for val in dict.allValues {
if username == val as! String {
// Present alert
return
}
}
}
self.usersRef.child(username).setValue(username) { (error, dbRef) in
if error == nil {
// Continue
}
}
如何只提取一次用户列表? 提前谢谢!
答案 0 :(得分:0)
我必须将observeEventType
方法更改为observeSignleEventOfType
我还更新了我的代码以使其工作(无论如何):
self.usersRef.observeSingleEventOfType(.Value) { (snapshot: FIRDataSnapshot) in
let dict = snapshot.value as! NSDictionary
for val in dict.allValues {
if username == val as! String {
// Present alert
return
}
else {
self.usersRef.child(username).setValue(username) { (error, dbRef) in
if error == nil {
// Continue
}
}
}