2016-10-12 48 views
0

由于即使使用正确的密码更新到Swift 3.0,我也会收到不正确的消息。有没有人在Fi​​rebase授权用户时遇到过这个问题?使用Swift 3.0的Firebase授权不起作用

@IBAction func LoginToAccount(_ sender: AnyObject) { 

    if let email = emailLogin.text, let password = passwordLogin.text { 

    FIRAuth.auth()?.signIn(withEmail: email, password: password, completion: { 
     (user, error) in 


     if error != nil{ 
      print("Incorrect") 
      let alert = UIAlertController(title: "Error", message: "Incorrect Email or Password.", preferredStyle: UIAlertControllerStyle.alert) 
      let action = UIAlertAction(title: "Ok", style: .default, handler: nil) 
      alert.addAction(action) 
      self.present(alert, animated: true, completion: nil) 
     }else{ 
      if error == nil { 
      self.performSegue(withIdentifier: "AdminSegue", sender: self) 

       } 
      } 
     }) 
    } 
    } 
} 
+0

你是什么意思*不工作*? – Dravidian

+0

如果你告诉我们错误信息是什么,它会很有用。 – Wilson

+0

我的意思是即使使用正确的密码,我只是收到消息字符串“不正确的电子邮件或密码”。在更新到Swift 3.0之前工作正常 –

回答

1

如果你可以创建一个电子邮件,并有登录问题,那么它会像我的情况。只需检查您的项目xcode项目中的钥匙串可访问性 - >功能 - >钥匙串共享 - >开启,如果它关闭。

0

你必须确保用户已最初创建的,因为你必须首先创建一个用户,然后使用创建的用户登录。

@IBAction func LoginToAccount(_ sender: AnyObject) { 

    if let email = emailLogin.text, let password = passwordLogin.text { 

     FIRAuth.auth()!.createUser(withEmail: email, password: password) { user, error in 
     if error == nil { 
     FIRAuth.auth()!.signIn(withEmail: email, password: password, , completion: { (user, error) in 


      if error != nil{ 
      print("Incorrect") 
      let alert = UIAlertController(title: "Error", message: "Incorrect Email or Password.", preferredStyle: UIAlertControllerStyle.alert) 
      let action = UIAlertAction(title: "Ok", style: .default, handler: nil) 
      alert.addAction(action) 
      self.present(alert, animated: true, completion: nil) 
      } else { 
      if error == nil { 
      self.performSegue(withIdentifier: "AdminSegue", sender: self) 
      } 
     } 
     }) 
     } 
    }  
} 
1

经过一番研究,这显然是Simulator 10.0不允许Firebase向钥匙串写入值的问题。显然他们正在处理的东西,但它不会影响实际设备上的应用程序。