Swift + Firebase 模拟登录错误

Posted

技术标签:

【中文标题】Swift + Firebase 模拟登录错误【英文标题】:Swift + Firebase simulated login error 【发布时间】:2016-06-21 19:25:44 【问题描述】:

ios 新手在最初由导师领导的应用程序的早期阶段苦苦挣扎。目前问题出现在登录视图控制器中:

                override func viewDidAppear(animated: Bool) 
                super.viewDidAppear(animated)
                let myRootRef = Firebase(url:"https://xxxx.firebaseio.com")
                if myRootRef.authData.uid != nil 
                self.performSegueWithIdentifier("loginToGreet", sender: nil)

                  

倒数第二行旁边的错误消息显示“线程 1:EXC_BAD_INSTRUCTION 和下面显示“致命错误:在展开可选值 (lldb) 时意外发现 nil”

当我们最初将项目上架时,这是可行的。下一段代码,如果重要的话:

    @IBAction func loginPress(sender: UIButton) 
    let myRootRef = Firebase(url:"https://xxx.firebaseio.com")
    myRootRef.authUser(self.patientLoginName.text, password:self.patientLoginPassword.text,
        withCompletionBlock:  error, authData in
            if error != nil 
                // There was an error logging in to this account
                print(error)
             else 
                // We are now logged in
                print(authData)
                self.performSegueWithIdentifier("loginToGreet", sender: nil)
            
    )

【问题讨论】:

你在哪一行得到错误 如果 myRootRef.authData.uid != nil 【参考方案1】:

试试

  if myRootRef.authData != nil 
     self.performSegueWithIdentifier("loginToGreet", sender: nil)
  

authData 可能为 nil,您正在检查 authData.uid。由于authData 为 nil,它会在 uid 访问时崩溃,因此请像上面一样更改错误检查。

【讨论】:

不确定你在那里做了什么,但它确实有效。谢谢!

以上是关于Swift + Firebase 模拟登录错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Firebase 在 Android 模拟器上运行时在 PhoneGap 应用程序中返回 404 错误?

Firebase Firestore 模拟器错误`主机已在 settings() 和 useEmulator() 中设置,将使用模拟器主机`

Firebase 服务错误:端口 5000 未打开。无法启动功能模拟器

AngularFireAuth 模拟器登录在页面重新加载时丢失

Firebase 函数模拟器错误:找不到模块“../service-account.json”

使用带有 android firebase 短信认证的模拟器