无论如何只能访问孩子的字典值吗?

时间:2017-09-13 23:20:37

标签: swift dictionary firebase firebase-realtime-database

在Swift的Firebase数据库中,有没有办法从字典中访问值(作为字符串)。每个孩子都有一个关键:价值对。例如:

users
|-- Bob
    |-- Bob@gmail.com: "BOBBBBY"

有没有办法以字符串形式访问"BOBBBBY"? 我是Swift的新手,所以感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

Firebase数据库文档示例

直接来自https://firebase.google.com/docs/database/ios/read-and-write

let userID = Auth.auth().currentUser?.uid
ref.child("users").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in
    // Get user value
    let value = snapshot.value as? NSDictionary
    let username = value?["username"] as? String ?? "" // <<< this line
    let user = User.init(username: username)

    // ...
    }) { (error) in
        print(error.localizedDescription)
}

为您更新

如果您需要用户下的多个字段:

ref.child("users").child("Bob").observeSingleEvent(of: .value, with: { (snapshot) in
    let value = snapshot.value as? NSDictionary
    let emailValue = value?["Bob@gmail.com"] as? String ?? ""
    // do more...
}

...或者如果您只需要一个值:

ref.child("users").child("Bob").child("Bob@gmail.com").observeSingleEvent(of: .value, with: { (snapshot) in
    if let value = snapshot.value as? String {
        // use the value...
    }
}