如何使用新的Firebase快速更新电子邮件和密码

时间:2016-08-11 22:57:04

标签: swift firebase firebase-authentication

我正在使用谷歌新的firebase开发应用程序。 我在更新用户电子邮件和密码方面遇到了问题。

这是我尝试过的。

let currentUser = FIRAuth.auth()?.currentUser

currentUser?.updateEmail(email) { error in
    if let error = error {
        print(error)

    } else {
        // Email updated.
        currentUser?.updatePassword(password) { error in
            if let error = error {

            } else {
                // Password updated.
                print("success")

            }
        }
    }
}

但是当更新密码时,会发生这样的错误。

  

“Domain = FIRAuthErrorDomain Code = 17014”此操作非常敏感,需要最近的身份验证......“

据我所知,我们必须在更新电子邮件后重新配置用户。

我尝试使用此代码从firebase重新配置。

let user = FIRAuth.auth()?.currentUser
var credential: FIRAuthCredential

// Prompt the user to re-provide their sign-in credentials

user?.reauthenticateWithCredential(credential) { error in
  if let error = error {
    // An error happened.
  } else {
    // User re-authenticated.
  }
}

但这会发生错误

  

在初始化之前使用变量'凭证'

我知道这是因为我没有初始化'凭证'变量,但我不知道如何解决这个问题。

有谁知道解决方案?

1 个答案:

答案 0 :(得分:9)

在您的编辑中,您没有初始化FIRAuthCredential ...它应该是var credential = FIRAuthCredential()或者只是像下面的代码一样使用它

let credential = FIREmailPasswordAuthProvider.credentialWithEmail(email, password: password)

user?.reauthenticateWithCredential(credential) { error in
   if let error = error {
       // An error happened.
   } else {
      // User re-authenticated.
   }
 }