Firebase 用户重新身份验证初始化错误

Posted

技术标签:

【中文标题】Firebase 用户重新身份验证初始化错误【英文标题】:Firebase User re-authentication initialising error 【发布时间】:2019-08-29 06:55:59 【问题描述】:

当任何用户想从应用程序更新他/她的密码时,我想更新同一个 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.
    
)

但是在上面的代码中我遇到了下面的错误

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

凭据只定义一次,在此之前从未使用过

谁能告诉我我做错了什么?

【问题讨论】:

【参考方案1】:

当我如下设置我的凭证变量时,错误消失了:

var credential: AuthCredential = EmailAuthProvider.credential(withEmail: email, password: password)

这个答案帮助了我:https://***.com/a/52160137/9625899

【讨论】:

以上是关于Firebase 用户重新身份验证初始化错误的主要内容,如果未能解决你的问题,请参考以下文章

处理 SwiftUI 组合应用程序中的 Firebase 身份验证错误

身份验证错误后的 Firebase 用户数据

尝试使用 Firebase 身份验证时出现错误

密码注册后 Firebase 云功能出现未经身份验证的错误

持久化用户身份验证 Flutter Firebase

Flutter Firebase 不保留用户身份验证