首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Firebase应用程序在快速启动时崩溃

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

Stack Overflow用户
提问于 2017-10-28 22:11:30
回答 2查看 553关注 0票数 0

我有一个ios应用程序连接到我的防火墙,在其中我有一个类,我已经定义了所有的链接到防火墙数据库。

AppDelegate.swift包含aa init()方法,因此,Firebase是第一个被初始化的。

代码语言:javascript
代码运行次数:0
运行
复制
override init() {
    super.init()
    FirebaseApp.configure()

}

定义了所有DB路径的Firebase数据服务。

代码语言:javascript
代码运行次数:0
运行
复制
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
}

现在,我一启动应用程序,就会发现一个错误

代码语言:javascript
代码运行次数:0
运行
复制
fatal error: unexpectedly found nil while unwrapping an Optional value

此错误发生在数据服务类中的uid定义上。

现在,据我所知,这是因为即使没有用户,也可以初始化uid。

关于如何实施这一点,我没有什么想法。在我的整个项目中,我有很多提到uid的地方。做这件事最合适的方法是什么。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-28 22:18:13

您可能需要使用observeAuthEventWithBlock

若要侦听身份验证状态中的更改,请使用observeAuthEventWithBlock附加一个事件观察者。如果当前没有经过身份验证的用户,authData将为零。

您按照参考文献这样实现它

代码语言:javascript
代码运行次数:0
运行
复制
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
    }
})
票数 3
EN

Stack Overflow用户

发布于 2017-10-28 22:43:33

我不太清楚你在哪里初始化你的代码。可能的解决办法:

  1. 使用保护语句guard let userID = Auth.auth().currentUser?.uid else {return}
  2. 尝试将此代码放入将返回可选字符串的函数中。
  3. 如果您试图在didFinishLaunchingWithOptions之前检查用户是否存在,请像上面的语句那样创建一个If else语句或guard语句。if Auth.auth().currentUser?.uid != nil
  4. 如果您正在使用Cocoapods,请尝试使用pod update
  5. 如果这些不起作用,试着重新安装吊舱。
  6. FirebaseApp.configure()中调用didFinishLaunchingWithOptions中的appDelegate并返回true。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46995012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档