ios - Firebase 用户重新身份验证初始化错误
问题描述
当任何用户想从应用程序更新他/她的密码时,我想更新同一个 FCM 用户的密码,为此我尝试了下面在官方文档中定义的代码。
这是我的代码
func authenticateAndUpdateFCMUserPassword(strNewPassword: String) {
let user = Auth.auth().currentUser
var credential: AuthCredential
// Prompt the user to re-provide their sign-in credentials
user?.reauthenticate(with: credential) { error in
if let error = error {
// An error happened.
} else {
// User re-authenticated.
}
}
Auth.auth().currentUser?.updatePassword(to: strNewPassword) { (error) in
if error != nil {
print("Error occur while updating password")
}
else {
print("Password Updated Successfully")
}
}
}
user?.reauthenticate
但是在上面的代码中,我遇到了以下错误
无法将类型“(_)->()”的值转换为预期的参数类型“AuthDataResultCallback?” (又名'可选<(可选,可选)->()>')
所以我用下面的代码重新写了
user?.reauthenticate(with: credential, completion: { (dataResult, errorr) in
if errorr != nil {
// An error happened.
} else {
// User re-authenticated.
}
})
但在上面的代码中我面临以下错误
在初始化之前使用的变量“凭据”
凭证只定义一次,在此之前从未使用过
有人可以让我知道我做错了什么吗?
解决方案
当我如下设置我的凭证变量时,错误消失了:
var credential: AuthCredential = EmailAuthProvider.credential(withEmail: email, password: password)