快速解析firebase时为零

Posted

技术标签:

【中文标题】快速解析firebase时为零【英文标题】:nil while parsing firebase in swift 【发布时间】:2017-04-05 06:25:20 【问题描述】:

我正在尝试将值从 firebase 解析到我的字典:

for rest in snapshot.children.allObjects as! [FIRDataSnapshot] 

                guard let restDict = rest.value as? [String: String] else 
                    continue
                
                if (restDict["uid"] != FIRAuth.auth()?.currentUser?.uid && (restDict["userCity"])! == "SomeCity")

                    self.users.updateValue(restDict["userImgLink"]!, forKey: restDict["userName"]!)
                        print(self.users["userName"])

                    
            

这是我的 dict 声明:

var users: [String : String] = [:]

restDict 值返回一个 Optional("somestring"),但 elf.users["userName"] 返回 nil。我怎样才能在我的 dict 中获得真正的价值?提前致谢。

【问题讨论】:

我建议做一些调试并检查restDict中所有值的值是什么,最好添加一个作为代码sn-p... 您确定密钥 userName 存在吗? @Anuraj 是的,它返回给我 Optional("name") 【参考方案1】:

在下面的行中,您尝试为键restDict["userName"]! 设置值restDict["userImgLink"]!,因此键将是restDict["userName"]! 的值,而不是"userName"

 self.users.updateValue(restDict["userImgLink"]!, forKey: restDict["userName"]!)

但在打印时,您试图获取 "userName" key 的值,该值将为 nil。

【讨论】:

谢谢,在这种情况下我应该写什么?如果我删除“!”,我将无法构建我的应用程序。

以上是关于快速解析firebase时为零的主要内容,如果未能解决你的问题,请参考以下文章

为啥图像未存储在 Firebase 存储中且 URL 为零?

成功上传文件后,来自 Firebase 存储的 downloadURL 为零

尽管从 Firebase 添加了项目,但 ArrayList 的大小仍然为零

如何快速解码来自 Firebase Firestore 的时间戳

我正在使用 Firebase RealTime DB .. 我想做的就是让所有用户的分数为零

Firebase 云功能推送通知