2016-07-17 5 views
0

firebaseから受信したデータを収集タイプにダウンキャストできません。私が逃したことや間違ったことを理解する助けに本当に感謝しています。Firebaseから取得したデータの変換に問題があります

Firebase Structure [FirebaseStructure]

My機能:

func configureDatabase() { 
     self.rootRef = FIRDatabase.database().reference() 
     rootRef.child("user1/week1/MON/").observeSingleEventOfType(.Value, withBlock: { (snapshot) -> Void in 
      for child in snapshot.children { 
       let snap = child as! FIRDataSnapshot 
       let fetchedObject = snap.value 
       //This results <AnyObject> 
       print(fetchedObject.dynamicType) 

}) 

} 

私は種類の辞書にfetchedObjectを変換しようとしています[文字列:ANYOBJECT]または[文字列:文字列] -

let fetchedObject = snap.value as! Dictionary[String: AnyObject] 

エラーをスローする - タイプ '__NSCFString'(0x1043e5090)の値を 'NSDictiona'にキャストできませんでした。 ry '(0x1043e5d60)。それは任意の助けになることができればここで

は、印刷(fetchedObject)のコンソール出力です:

Optional({ 
    medicine = Azithromycin; 
    time = 0700; 
}) 
Optional({ 
    medicine = Azithromycin; 
    time = 1800; 
}) 

答えて

0

OK!私はこの問題を解決しました!クリーンな操作を行った後、firebaseデータベースの永続性をfalseに変更しました。

FIRDatabase.database().persistenceEnabled = false 

これが問題を解決しました。どうやらアプリはキャッシュからデータをロードしていたと思うので、正しいデータが得られていませんでした。

関連する問題