验证后Firebase uid返回nil(Swift)

时间:2016-03-31 01:22:37

标签: ios swift firebase uid

在我的应用程序中,一旦打开,我会检查用户是否已在初始视图的viewdidload中进行了身份验证。如果它们已经过身份验证,我会对主视图执行segue。我此时甚至将uid打印到日志中并正确打印。

override func viewDidLoad() {
    super.viewDidLoad()


    if ref.authData != nil {
        let uid = ref.authData.uid
        print(uid)

我稍后会在应用中执行相同操作,以便在用户点击其个人资料设置时获取一些用户信息。我写了完全相同的代码来获取他们的uid,但这次uid返回nil并且因错误而崩溃

"致命错误:在展开可选值时意外发现nil"

这是firebase还是模拟器问题?

编辑:此问题仅发生过两次。否则,代码本身按预期工作,这让我想知道它是否是firebase或模拟器问题。

3 个答案:

答案 0 :(得分:2)

您希望使用observeAuthEventWithBlock方法,这是一种实时身份验证侦听器。

dplyr

答案 1 :(得分:1)

关于您遇到的确切错误我不确定,但是快速执行代码(并避免错误)的方法是致电:

if let uid = ref.authData.uid {
    print(uid)
}

此代码安全地展开authData和UID。

答案 2 :(得分:1)

我遇到了这个问题,花了我几个小时。然后我意识到我只是忘了这样做:

ref = FIRDatabase.database().reference()

之前

var ref: FIRDatabaseReference!