为什么在迭代firebase数据库时获得nil?

时间:2016-11-08 07:25:44

标签: ios swift firebase firebase-realtime-database

我在使用我的firebase db而且我不知道我做错了什么。

self.ref.child("User").observeSingleEvent(of: .value, with: { (snapshot) in

    let value = snapshot.value as! [String: AnyObject]

    for each in value {
        let username = each.value["username"] as! String
        self.ref.child("Highscores").child(username).observeSingleEvent(of: .value, with: { (snapshot) in
            let wert = snapshot.value as! [String: AnyObject]
            for each in wert {
                let fbscore = each.value["score"] as! String

在这种情况下,fbscore为零。

每个的输出(打印)是("得分",21),所以每个键都是"得分" and each.value是" 21"。

我的错误在哪里?我什么也没看到。

1 个答案:

答案 0 :(得分:1)

您需要向下转发AnyObject以更正类型Int而不是String

each.value as! Int

以及防止nil例外。使用guard或可选的绑定。

if let fbscore = each.value as? Int {      
    print(fbscore)
}else{
   print("casting failed")
}