我的firebase int返回nil

时间:2018-06-05 04:06:27

标签: ios swift firebase firebase-realtime-database

我正在尝试从我的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 } } }

1 个答案:

答案 0 :(得分:1)

我认为问题是这个问题"Optional(\"njcfCQaIIhZS9qrqM9OFLqTS7yA2\")",当你将数据保存到firebase时,你在没有打开可选项的情况下给它id,当你得到这个值时,你就像UserUID!那样展开它,因此它给出"njcfCQaIIhZS9qrqM9OFLqTS7yA2",因此这是两个不同的值。

所以我认为你应该在将数据保存到firebase时解压缩用户ID,或者尝试在没有解包的情况下获取它,即child(UserUID)没有!,尽管我建议使用第一个选项。 / p>