Ios 在swift中解析firebase时为nil

Ios 在swift中解析firebase时为nil,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我正在尝试将值从firebase解析到我的字典: for rest in snapshot.children.allObjects as! [FIRDataSnapshot] { guard let restDict = rest.value as? [String: String] else { continue } if (restDict["uid"]

我正在尝试将值从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"])

                    }
            }
这是我的宣言:

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

restDict值返回一个可选(“somestring”),但elf.users[“userName”]返回nil。我怎样才能在我的字典中得到真正的价值呢?提前感谢。

在下一行中,您正在尝试设置restDict[“userImgLink”]的值用于键
restDict[“用户名”]
,因此该键将是
restDict[“userName”]的值而不是
“用户名”


但是,在打印时,您试图获取
“userName”
键的值,该值将为零。

我建议进行一些调试,并检查
restDict
中所有值的值,最好添加一个作为代码段…您确定键userName存在吗?@Anuraj是的,它返回可选(“名称”)谢谢,在这种情况下我应该写什么?如果删除“!”,则无法生成应用程序。
 self.users.updateValue(restDict["userImgLink"]!, forKey: restDict["userName"]!)