swift - 使用 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 比较陌生。)
谢谢!!
解决方案
我认为您缺少结果参数
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 。
推荐阅读
- r - Hive ODBC 连接与 dbplyr 无效的表别名或列引用
- c# - MVC ASP.NET Dropdown onchange 加载另一个下拉列表
- java - 如何从地图中检索值
- scala - 使用保持左/右组合器不适用于结果转换器
- ruby-on-rails - 上传带有carrierwave和dropzone的图片时,渲染缩略图版本
- javascript - 如何从正则表达式中提取匹配?
- eclipse - eclipse 中的工作区是否完全不被其他人访问和查看?
- django - 如何从连接表中获取多个值
- c - C 中 if() 条件中 == (!=) 运算符的 LHS 或 RHS 中的 MACRO?
- java - Java 中的扩展或自动类型转换;为什么会有精度损失?