无法转换从Firebase

时间:2016-07-17 15:10:12

标签: swift firebase firebase-realtime-database

我无法将从firebase收到的数据向下转发到收集类型。我真的很感激任何帮助让我明白我错过或做错了什么。

Firebase Structure [FirebaseStructure]

我的功能:

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转换为类型为[String:AnyObject]或[String:String]的字典 -

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

它会抛出错误 - 无法将“__NSCFString”类型的值(0x1043e5090)转换为“NSDictionary”(0x1043e5d60)。

这是print(fetchedObject)的控制台输出,如果它可以有任何帮助:

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

1 个答案:

答案 0 :(得分:0)

确定!我解决了这个问题!执行一个干净的操作,然后将firebase数据库持久性更改为false,之前是真的。

 FIRDatabase.database().persistenceEnabled = false

这解决了这个问题!显然,应用程序正在从缓存中加载数据我猜,所以我没有得到正确的数据。