我有一个连接到我的 firebase 的 ios 应用程序,我在其中有一个类,我在其中定义了所有指向 firebase-database 的链接。
AppDelegate.swift 包含一个init()
方法,因此,Firebase 是第一个被初始化的。
override init() {
super.init()
FirebaseApp.configure()
}
Firebase 数据服务,其中定义了所有数据库路径。
import Firebase
import FirebaseDatabase
let DB_URL: DatabaseReference = Database.database().reference()
let ST_URL: StorageReference = Storage.storage().reference()
let uid = Auth.auth().currentUser?.uid
class FBDataservice {
//... other code
}
现在,一旦我启动应用程序,我就会收到错误消息
fatal error: unexpectedly found nil while unwrapping an Optional value
此错误发生在数据服务类中的 uid 定义上。
现在,据我了解,这是因为即使没有用户,uid 也可能被初始化。
我不知道如何实现它。我在整个项目中有很多对 uid 的引用。执行此操作最合适的方法是什么。
谢谢
最佳答案
您可能想要使用 observeAuthEventWithBlock
。
To listen for changes in the authentication state, attach an event observer with observeAuthEventWithBlock. If there is no user currently authenticated, authData will be nil.
你按照reference这样实现:
let ref = Firebase(url: "https://<YOUR-FIREBASE-APP>.firebaseio.com")
ref.observeAuthEventWithBlock({ authData in
if authData != nil {
// user authenticated
println(authData)
} else {
// No user is signed in
}
})
关于ios - Firebase 应用程序在快速启动时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46995012/