微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在使用谷歌的新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.
   }
 }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐