我在将从 Firebase 接收到的数据向下转换为集合类型时遇到问题。我真的很感激任何帮助我理解我错过了什么或做错了什么的帮助。
[Firebase结构]
我的功能:
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;
})
最佳答案
好的!我解决了这个问题!执行了清理操作,然后将 firebase 数据库持久性更改为 false,这之前是 true。
FIRDatabase.database().persistenceEnabled = false
这解决了问题!显然,我猜应用程序正在从缓存加载数据,所以我没有获得正确的数据。
关于swift - 转换从 Firebase 检索的数据时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38422689/