我正在尝试从我的firebase数据库中提取一个int但是当我尝试设置我的变量时它会返回nil。
ref = Database.database().reference()
let UserUID = Auth.auth().currentUser?.uid as? String
ref.child("users").child(UserUID!).child("MaxVal").observeSingleEvent(of:
.value, with: { (snapshot) in
let snap = snapshot.value as? Int
self.MaxValFB = snap! //this returns nil
}) { (error) in
print(error.localizedDescription)
}
任何有关的帮助!
编辑:打印结果后返回 可选(null)
这里也是db json文件
{
"users" : {
"Optional(\"njcfCQaIIhZS9qrqM9OFLqTS7yA2\")" : {
"MaxVal" : 1
}
}
}
答案 0 :(得分:1)
我认为问题是这个问题"Optional(\"njcfCQaIIhZS9qrqM9OFLqTS7yA2\")"
,当你将数据保存到firebase时,你在没有打开可选项的情况下给它id,当你得到这个值时,你就像UserUID!
那样展开它,因此它给出"njcfCQaIIhZS9qrqM9OFLqTS7yA2"
,因此这是两个不同的值。
所以我认为你应该在将数据保存到firebase时解压缩用户ID,或者尝试在没有解包的情况下获取它,即child(UserUID)
没有!
,尽管我建议使用第一个选项。 / p>