【问题标题】:Firebase store email's verification status in databaseFirebase 在数据库中存储电子邮件的验证状态
【发布时间】:2018-03-29 11:41:57
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    不确定为什么要将这些信息存储在您的数据库中,因为 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
    

    【讨论】:

    • 我需要创建一个表单来注册一个活动。用户可以通过访问我的网站并注册来参加此活动,但他们也可以在纸质表格中填写他们的电子邮件,我们将为他们创建一个帐户(他们的电子邮件和默认密码是 123456)。我想列出所有未验证的用户,以便在需要时删除此帐户,让其他人可以参加我的活动(只有可以参加活动的电子邮件,因为我们的容量只有 250 人)
    • 属性“isEmailVerified”存储在 Firebase 服务器的什么位置?我在身份验证用户表中找不到它。
    • Firebase 在内部存储此值。默认情况下,它不会像 UID 一样存储在您的数据库中。
    猜你喜欢
    • 2018-07-09
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    相关资源
    最近更新 更多