2016-08-08 17 views
4

このエラーが発生しましたが、StringDictionaryから取得しようとしています。これは私のコードです:私のFirebaseデータベース"名前""ログイン" でSwift - タイプ '__NSCFString'の値を 'NSDictionary'にキャストできません

FIRDatabase.database().reference().child("users").child(uid).observeEventType(.ChildAdded, withBlock: { (snapshot) in 

      let dictionary = snapshot.value as! NSDictionary 

      if let username = dictionary["name"] as? String { 
       cell.name.text = username 
      } 

      if let userlogin = dictionary["login"] as? String { 
       cell.login.text = userlogin 
      } 

     }) 

は両方の文字列です。私は何が問題なのか理解できません。

ご協力いただければ幸いです!

+0

問題NSDictionaryにスナップショットをキャストします。デバッグ中にsnaphsotの内容を確認してください – lubilis

+2

'snapshotvalue'は文字列であり、その値を辞書に変換しようとしています。 –

+0

@ lubilis、私は工事を施工する必要がありました。どうもありがとうございました!あなたは私を救いました! –

答えて

4

問題はNSDictionaryへのスナップショットキャストに関するものです。スナップショットの値は文字列なので、 これを試してみてください:

FIRDatabase.database().reference().child("users").child(uid).observeEventType(.ChildAdded, withBlock: { (snapshot) in 

     if let dictionary = snapshot.value as? NSDictionary { 

      if let username = dictionary["name"] as? String { 
       cell.name.text = username 
      } 

      if let userlogin = dictionary["login"] as? String { 
       cell.login.text = userlogin 
      } 
     } 
    }) 
関連する問題