【问题标题】:nil while parsing firebase in swift快速解析firebase时为零
【发布时间】: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")

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢,在这种情况下我应该写什么?如果我删除“!”,我将无法构建我的应用程序。
猜你喜欢
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 2014-10-14
  • 2018-07-08
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多