swift - 转换从 Firebase 检索的数据时遇到问题

标签 swift firebase firebase-realtime-database

我在将从 Firebase 接收到的数据向下转换为集合类型时遇到问题。我真的很感激任何帮助我理解我错过了什么或做错了什么的帮助。

Firebase Structure [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/

相关文章:

swift - 如何安全地测试一个方法是否可以通过 NSInitation 调用

ios - ScrollView 没有出现

ios - 我的应用程序因为缺少 "significant account-specific functionality from Google"而被拒绝

android - 无法解析 com.google.android.gms :play-services-measurement-base:[18. 0.0]

java - 在 Android 上执行 firebase 查询

swift - 为什么我的实例没有被释放?

ios - (快速)当 AudioStreamPacketDescription 为 nil 时调试 CrashIfClientProvidedBogusAudioBufferList 的方法?

swift - 使用 Swift 从 firebase 中提取数据

ios - 如何从 firebase 中的数组中删除字符串值

ios - 每次到达页面底部时加载接下来的 15 个帖子