Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 更新Firebase值时出错_Ios_Swift_Firebase - Fatal编程技术网

Ios 更新Firebase值时出错

Ios 更新Firebase值时出错,ios,swift,firebase,Ios,Swift,Firebase,如果我登录或注册,一切都会顺利进行。一旦用户将其电子邮件值更改为firebase,然后注销,“我的登录”功能将不再工作。我不确定到底是什么原因导致了这种情况,但它一定是我的updateEmailAction函数中的某个东西 //在更新电子邮件之前工作正常。在电子邮件更新和持续SVP进程旋转后不再工作 @IBAction func signInButton(_ sender: Any) { self.view.endEditing(true) let email = emailT

如果我登录或注册,一切都会顺利进行。一旦用户将其电子邮件值更改为firebase,然后注销,“我的登录”功能将不再工作。我不确定到底是什么原因导致了这种情况,但它一定是我的updateEmailAction函数中的某个东西

//在更新电子邮件之前工作正常。在电子邮件更新和持续SVP进程旋转后不再工作

@IBAction func signInButton(_ sender: Any) {

    self.view.endEditing(true)
    let email = emailText.text!.lowercased()
    let finalEmail = email.trimmingCharacters(in: .whitespacesAndNewlines)
    let password = passwordText.text!

    if finalEmail.characters.count < 8 || finalEmail.isEmpty || password.isEmpty {

        let alertController = UIAlertController(title: "OOPS", message: "You must fill in all the fields", preferredStyle: .alert)
        alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
        present(alertController, animated: true, completion: nil)

    }else {
      SVProgressHUD.show()

        Auth.auth().signIn(withEmail: email, password: password) { (user, error) in
            if error == nil {
                if let user = user {
                    print("\(user.displayName!) has been signed in")

                   SVProgressHUD.dismiss()

                    self.enter()
             self.performSegue(withIdentifier: "signInHome", sender: nil)

                }else{
                    print(error?.localizedDescription as Any)
                }
            }
        }
    }

}

更新电子邮件函数中有很多代码,那么使用Firebase updateEmail函数来简化它怎么样

var finalEmail = ""
//capture a new email from the user

Auth.auth().currentUser?.updateEmail(to: finalEmail) { (error) in
  // ...
}
请注意,要设置用户的电子邮件地址,用户必须最近登录。如果没有,错误将被忽略

FirautherRorCode太旧了

您需要重新验证该用户

let thisUser = Auth.auth().currentUser
var cred: AuthCredential

thisUser?.reauthenticate(with: cred) { error in
  if let error = error {
    // Handle the error
  } else {
    // User has re-authenticated
  }
}

注销代码在哪里?你注销时看到了什么?
let thisUser = Auth.auth().currentUser
var cred: AuthCredential

thisUser?.reauthenticate(with: cred) { error in
  if let error = error {
    // Handle the error
  } else {
    // User has re-authenticated
  }
}