firebase - SwiftUI、Firebase 链接以确认电子邮件
问题描述
我想增加在注册期间发送验证电子邮件的可能性。我如何在函数内部和 SignupView 中插入“sendEmailVerificationWithCompletion”?非常感谢 :)
import SwiftUI
import FirebaseAuth
// Add code here:
static func createUser(withEmail email:String, name: String, password:String, completionHandler:@escaping (Result<Bool,Error>) -> Void) {
Auth.auth().createUser(withEmail: email, password: password) { (authResult, error) in
if let err = error {
completionHandler(.failure(err))
return
}
guard let _ = authResult?.user else {
completionHandler(.failure(error!))
return
}
let data = FBUser.dataDict(uid: authResult!.user.uid, name: name, email: authResult!.user.email!)
FBFirestore.mergeFBUser(data, uid: authResult!.user.uid) { (result) in
completionHandler(result)
}
completionHandler(.success(true))
}
}
//And add code here:
struct SignUpView: View {
var body: some View {
VStack(spacing: 20 ) {
Button(action: {
FBAuth.createUser(withEmail: self.user.email, name: self.user.fullname, password: self.user.password) { (result) in
switch result {
case .failure(let error):
self.errorString = error.localizedDescription
self.showError = true
case .success(_):
print("Account creation successful")
}
}
}) {
Text("Register")
}
}
}
}
解决方案
您可以在用户登录后随时告诉 Firebase 向当前用户发送验证电子邮件。例如,您可以在创建用户帐户后立即执行此操作:
Auth.auth().createUser(withEmail: email, password: password) { (authResult, error) in
if let err = error {
completionHandler(.failure(err))
return
}
guard let _ = authResult?.user else {
completionHandler(.failure(error!))
return
}
// send verification email
Auth.auth().currentUser?.sendEmailVerification { (error) in
// ...
}
// write profile to database
let data = FBUser.dataDict(uid: authResult!.user.uid, name: name, email: authResult!.user.email!)
FBFirestore.mergeFBUser(data, uid: authResult!.user.uid) { (result) in
completionHandler(result)
}
completionHandler(.success(true))
}
推荐阅读
- sitefinity - MVC 查看存储在配置中的链接
- docker - 如何使已经存在的 Docker 卷可以从主机访问?
- python-3.x - 如何更新列中的新值而不影响sqlite数据库中的旧值
- django - 保存任何缩略图的转换引擎问题
- c++-cli - “互斥”:不是“std”的成员,在 CLR 中使用犰狳时出错
- entity-framework-core - EF-Core - 级联删除 - DELETE 语句与 REFERENCE 约束冲突
- mysql - Docker MySQL 容器 ERROR 1030 (HY000): Got error 168 - 'Unknown (generic) error from engine' 来自存储引擎
- python - chess.engine 在同一个脚本中多次分析一个位置时,为什么会有不同的分数?
- java - 如何在我的路径中显示从上到下的泄漏
- css - 如何将内联 CSS 添加到 Laravel if 语句?