我需要将电子邮件的验证状态信息存储在firebase的数据库中。例如,当用户使用uid =“001”创建电子邮件/密码帐户时,我将在数据库中创建一个节点:'001':{emailverified:false}。然后,当他们验证此电子邮件时,我将更新节点'001':{emailverified:true}
我试过创建自定义电子邮件操作处理程序。但问题是当用户点击链接验证他的电子邮件时,我无法从oobCode获取用户的uid。所以我找不到在数据库中更新电子邮件验证的方法。
答案 0 :(得分:2)
不确定为什么要将此信息存储在数据库中,因为Firebase已经为您存储了这些信息....但是您可以执行类似这样的操作来获取电子邮件验证的价值。我只是在他们尝试登录并更新数据库中的值时进行检查。再次不确定为什么要存储它。
func login() {
Auth.auth().signIn(withEmail: emailField.text!, password: passwordField.text!, completion: {(user, error) in
if let error = error {
// alert user of the error
}
if user != nil && user!.isEmailVerified {
// upload true to your database
}
else if user != nil && !user!.isEmailVerified {
// upload false
}
})
}
您也可以使用:
Auth.auth().currentUser.isEmailVerified // not sure if this works