首页 > 解决方案 > 使用 Firebase / Xcode 重新验证用户时出错(用于用户电子邮件更新)

问题描述

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

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

哦,我正在使用电子邮件凭据来验证用户。

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

这是我从Firebase 文档以及这个线程中提取的代码:

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 比较陌生。)

谢谢!!

标签: swiftxcodefirebasefirebase-authentication

解决方案


我认为您缺少结果参数

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 。


推荐阅读