【问题标题】:Error reauthenticating user with Firebase / Xcode (for user email update)使用 Firebase / Xcode 重新验证用户时出错(用于用户电子邮件更新)
【发布时间】:2019-11-04 09:48:02
【问题描述】:

我正在尝试使用 Xcode 版本 10.2.1 和 Firebase 为 iOS 应用创建“更新电子邮件”屏幕。使用 Firebase 更新电子邮件的所有代码都可以正常工作,但是当我尝试重新验证用户身份时出现以下错误:

无法将类型“(_) -> ()”的值转换为预期的参数类型“AuthDataResultCallback?” (又名'可选()>')

哦,我正在使用电子邮件凭据对用户进行身份验证。

我在这里搜索了多个线程并浏览了 Firebase 文档,但似乎无法找出导致此错误的原因。

这是我从Firebase Documentationthis thread 提取的代码:

let user = Auth.auth().currentUser
var credential: AuthCredential = EmailAuthProvider.credential(withEmail: "email", password: "pass")

user?.reauthenticate(with: credential) { error in
     if let error = error {
        // error handled here
     } else {
        // success
     }
}

错误出现在“user?.reauthenticate(with: credential) { error in” 行。

有人知道是什么原因造成的吗?

(如果我遗漏了一些明显的东西,我深表歉意。我对使用 Swift/Xcode 比较陌生。)

谢谢!!

【问题讨论】:

    标签: swift xcode firebase firebase-authentication


    【解决方案1】:

    我认为您缺少 result 参数

    let user = Auth.auth().currentUser
    var credential: AuthCredential = EmailAuthProvider.credential(withEmail: "email", password: "pass")
    
    user?.reauthenticate(with: credential) { result, error in
         if let error = error {
            // error handled here
         } else {
            // success
         }
    }
    

    其中 result 是一个 AuthDataResult,其中包含成功登录的结果。

    【讨论】:

    • 啊!极好的。这非常有效!不知道为什么 Firebase 文档不包含该内容。谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 2017-12-02
    • 2020-07-17
    • 2018-08-14
    • 2017-12-29
    相关资源
    最近更新 更多