【问题标题】:How to update both Email and Password with new Firebase in swift如何在 swift 中使用新的 Firebase 更新电子邮件和密码
【发布时间】:2016-12-18 20:09:20
【问题描述】:

我正在使用来自 google 的新 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.
  }
}

但是出现这个错误

在初始化之前使用的变量“凭据”

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

有人知道解决办法吗?

【问题讨论】:

  • 我登录后就可以使用。我可以通过这种方式更改电子邮件和密码。
  • 嗨,@EICaptainv2.0 我已经更新了我的答案,你能看看并给我解决方案吗?

标签: swift firebase firebase-authentication


【解决方案1】:

在您的编辑中,您没有初始化您的 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.
   }
 }

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-06-27
  • 2021-04-11
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多