【发布时间】:2019-07-31 14:01:05
【问题描述】:
当尝试从 Firebase 读取时,我得到了
致命错误:在展开可选值时意外发现 nil
读取数据库的代码:
ref = Database.database().reference().child("userDatabases").child(userID!).child("-Lk__eup2Z7WR-iqtXkI").child("-Lk__gmhOTWfVzEPVo2t")
ref?.observeSingleEvent(of: .value, with: { (snapshot) in
for child in snapshot.children.allObjects as! [DataSnapshot] {
let dict = child.value as? [String : AnyObject] ?? [:]
self.objectProducer.append(dict["objectProducer"] as! String)
self.objectType.append(dict["objectType"] as! String)
self.objectAmount.append(dict["amount"] as! String)
self.objectMeasureUnit.append(dict["unit"] as! String)
}
})
如果我尝试打印例如:print(dict["objectProducer"]),我会得到正确的结果。
我尝试读取的 FirebaseStructure 如下所示:
"-Lk__eup2Z7WR-iqtXkI" : {
"-Lk__gmhOTWfVzEPVo2t" : {
"5740700998485" : {
"amount" : "330",
"objectProducer" : "Coca Cola",
"objectType" : "Zero",
"unit" : "Milliliter"
},
"createdOn" : "24-7-2019 at: 22:5:35",
"listID" : "-Lk__gmhOTWfVzEPVo2t",
"name" : "Test"
},
这里出了什么问题?
【问题讨论】:
-
我认为 child(userID!).child(-Lk__eup2Z7WR-iqtXkI).child(-Lk__gmhOTWfVzEPVo2t) 需要是字符串。 child(userID!).child("-Lk__eup2Z7WR-iqtXkI").child("-Lk__gmhOTWfVzEPVo2t")
-
@108g 很抱歉不清楚。它们是字符串。它们从以前的
UIViewController作为字符串传递,并放入变量中。我只是用一个值(childByAutoID)替换了它们,所以为了问题的目的,阅读的路径应该是清晰的。
标签: swift firebase firebase-realtime-database