使用iOS中的Firebase数据库检索数据

时间:2016-07-14 14:48:00

标签: ios swift firebase firebase-realtime-database

在我的应用中,我有一个简单的用户群,如下所示:

enter image description here

我要做的是简单地获取此列表一次,以便在新用户使用新用户名注册时检查用户名是否有效。
问题是,我发现检索数据的唯一方法是使用某种观察方法,这对我来说并不好。

我想要实现的逻辑(使用不起作用的检索方法):

// 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
    }
}

如何只提取一次用户列表? 提前谢谢!

1 个答案:

答案 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
        }
    }
}