读取 Firebase 数据:线程 1:致命错误:在展开可选值时意外发现 nil
Posted
技术标签:
【中文标题】读取 Firebase 数据:线程 1:致命错误:在展开可选值时意外发现 nil【英文标题】:Reading Firebase Data: Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value 【发布时间】:2018-06-27 05:27:49 【问题描述】:import Firebase
import FirebaseAuth
import FirebaseDatabase
let userID = Auth.auth().currentUser?.uid
var ref: DatabaseReference!
ref.child("users").child(userID!).observeSingleEvent(of: .value, with: (snapshot) in
let value = snapshot.value as? NSDictionary
let username = value?["username"] as? String ?? ""
let user = User(username: username)
print(username)
) (error) in
print(error.localizedDescription)
我从 Firebase 教程中复制了代码,但得到:“线程 1:致命错误:在展开可选值时意外发现 nil”
如果我把代码改成:
ref?.child("users").child(userID!).observeSingleEvent(of: .value, with: (snapshot) in
let value = snapshot.value as? NSDictionary
let username = value?["username"] as? String ?? ""
let user = User(username: username)
print(username)
) (error) in
print(error.localizedDescription)
username
不打印。
我该如何解决?检索数据的最佳方式是什么?
【问题讨论】:
任何感叹号都可能导致崩溃。根据代码ref
是nil
。
您可以将 print (username) 移到 let user = User(username: username) 语句上方吗?
@stevenpcurtis 这没什么区别。数据库引用实例未分配给ref
【参考方案1】:
你的 ref 变量应该是
var ref = Database.database().reference()
【讨论】:
非常感谢 Elhoej!这就是解决方案!以上是关于读取 Firebase 数据:线程 1:致命错误:在展开可选值时意外发现 nil的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI 线程 1:致命错误:未找到类型为 SessionStore 的 ObservableObject