加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用swift中的新Firebase更新电子邮件和密码

发布时间:2020-12-14 02:25:30 所属栏目:百科 来源:网络整理
导读:我正在使用谷歌的新firebase开发应用程序. 我在更新用户电子邮件和密码时遇到问题. 这是我尝试过的. let currentUser = FIRAuth.auth()?.currentUsercurrentUser?.updateEmail(email) { error in if let error = error { print(error) } else { // Email upd
我正在使用谷歌的新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 “This operation is sensitive and requires recent authentication…”

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

我尝试使用此代码从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.
  }
}

但这会发生错误

Variable ‘credential’ used before being initialed

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

有谁知道解决方案?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读