2016-10-20 9 views
1

ビューコントローラでは、複数のオブザーバコードがあります。それらのすべてが正しく動作します。私は子供のパスが正しいと確信しています。観察機能が正しい。私は別のView Controllerで試してみましたが、正しく動作しました。ここに私の火災基地構造があります: Firebase structureSwift-Firebase複数のオブザーバ

そしてここに私のオブザーバーの機能があります。

func downloadUserData(){ 
    if let currentUser = FIRAuth.auth()?.currentUser{ 
     print("AZAT: download user data id \(currentUser.uid))") 
     DataService.ds.REF_USERS.child(currentUser.uid).observe( .value, with: {(snapshot) in 
     if let userDict = snapshot.value as? Dictionary<String,Any>{ 
      print("AZAT: userdict is \(userDict)") 
      let user = User(userData: userDict) 
      self.users.insert(user, at: 0) 
     } 
     }) 
    } 
} 

そして私はviewDidLoad()でこの関数を呼び出します。 REF_USERSは正しいです、私はかなり確信しています。

ありがとうございました。

+0

大丈夫です、問題はありますか?エラー?どの線? – Dravidian

+0

私はprint( "AZAT:ユーザーデータID \(currentUser.uid)をダウンロード")をコンソールで見ることができます。しかし、私は印刷物( "AZAT:userdictは\(userDict)")をコンソールに見ることができません。 @Dravidian – Azat

+0

それからほとんどの場合、それは辞書ではありません。スナップショット自体を印刷してみてください。 – Dravidian

答えて

0
func downloadUserData(){ 
    if let currentUser = FIRAuth.auth()?.currentUser{ 
    print("AZAT: download user data id \(currentUser.uid))") 
    DataService.ds.REF_USERS.child(currentUser.uid).observe( .value, with: {(snapshot) in 

    if let lastNameReceived = (snapshot.value as? NSDictionary)?["lastName"] as? String{ 
    print("lastName value is \(lastNameReceived)") 
    } 
    if let userDict = snapshot.value as? Dictionary<String,Any>{ 
     print("AZAT: userdict is \(userDict)") 
     let user = User(userData: userDict) 
      self.users.insert(user, at: 0) 
     } 
     }) 
    } 
} 
関連する問題