ios - Firebase 应用程序在快速启动时崩溃

标签 ios swift firebase firebase-authentication

我有一个连接到我的 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/

相关文章:

swift - "if case"- 条件中的变量绑定(bind)需要初始化程序

Firebase:我什么时候应该使用 refreshToken?

ios - Swift - 'NSArray' 不是 'inout C' 类型

objective-c - 如何获取 uiTableviewCell 中的下一个索引路径

iphone - 如何保存已经用NSUserDefaults添加的subView?

iOS Swift - 使用 UILocalizedIndexedCollat​​ion 在 TableView 中显示联系人

ios - 添加自定义 Segues 后 UITableView 在屏幕上的偏移量

java - 如何在 google 端点中验证 firebase token ?

android - 如何处理 Firebase 3.x.x 中的自定义 firebase token 过期

ios - 如何在Page Control swift上捕获点击事件