【问题标题】:Firebase Auth (android) email verification need some adviceFirebase Auth (android) 电子邮件验证需要一些建议
【发布时间】:2017-07-30 06:37:58
【问题描述】:

用电子邮件和密码创建用户后,我打电话给#sendEmailVerification()。我所知道的是,Firebase 首先使用电子邮件和密码创建用户,然后向该用户发送验证邮件。

如果用户可以访问该邮件 ID 并验证生成 user.isEmailVerified = true 的邮件,这将正常工作。

但是,如果用户未能验证邮件或他/她无法访问提供的邮件,则电子邮件 ID 将被锁定,因为该帐户是使用该电子邮件 ID 创建的。

我的问题是,当用户无法验证电子邮件时该怎么办?

【问题讨论】:

  • 可能会通过简单的 Toast 消息提醒用户在使用应用程序之前需要进行验证
  • yes 给出创建具有可访问邮件 ID 的用户的指令
  • 是的,我已经显示了 toast 消息。但是,如果用户不想验证,那么在这种情况下,他们的电子邮件 ID 会被锁定在 Firebase 中。我需要的是,如果用户不验证然后删除他们的帐户。

标签: android firebase firebase-authentication


【解决方案1】:

如果您记录了用户在 Firebase 数据库中注册的事实,则可以使用 Admin SDK 定期清除电子邮件地址未经验证的用户。

https://firebase.google.com/docs/auth/admin/manage-users#delete_a_user

admin.auth().getUser(uid)
  .then(function(userRecord) {
    if (!userRecord.emailVerified) {
      admin.auth().deleteUser(uid)
        .then(function() {
          console.log("Successfully deleted user");
        })
        .catch(function(error) {
          console.log("Error deleting user:", error);
        });
    }
  })
  .catch(function(error) {
    console.log("Error fetching user data:", error);
  });

【讨论】:

  • 感谢您的坦率回复。我需要在服务器端编写这段代码吗?
  • 是的。 Admin SDK 只能在您信任的硬件上使用,因为它运行时具有对 Firebase 服务的完全管理员访问权限。
  • 还有一个问题,firebase 是否提供自动功能,例如为电子邮件验证提供时间限制。如果用户未能及时验证。他们的帐户将被删除。
  • 没有。这就是我写一个关于如何自己构建它的答案的原因。
猜你喜欢
  • 2018-12-15
  • 2017-05-30
  • 1970-01-01
  • 2022-01-24
  • 2018-03-16
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
相关资源
最近更新 更多