Firebase商店电子邮件在数据库

时间:2017-10-17 17:34:00

标签: firebase firebase-realtime-database firebase-authentication

我需要将电子邮件的验证状态信息存储在firebase的数据库中。例如,当用户使用uid =“001”创建电子邮件/密码帐户时,我将在数据库中创建一个节点:'001':{emailverified:false}。然后,当他们验证此电子邮件时,我将更新节点'001':{emailverified:true}

我试过创建自定义电子邮件操作处理程序。但问题是当用户点击链接验证他的电子邮件时,我无法从oobCode获取用户的uid。所以我找不到在数据库中更新电子邮件验证的方法。

1 个答案:

答案 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