【问题标题】:Email verification without having a FirebaseUser没有 FirebaseUser 的电子邮件验证
【发布时间】:2020-09-20 19:58:47
【问题描述】:

我正在尝试在没有 firebaseUser 的情况下发送验证电子邮件,这可能吗? 我知道我可以使用 user.sendEmailVerification() 方法来做到这一点,但我可以通过从文本字段中发送电子邮件来做到这一点吗?

【问题讨论】:

    标签: firebase flutter firebase-authentication


    【解决方案1】:

    根据我所知道的以及我从文档中读到的内容,看起来不可能做到这一点。如果您要发送使用 Firebase 电子邮件验证服务的电子邮件验证,则需要 Firebase 用户,也就是在 Firebase 平台中经过身份验证的用户。

    好吧,不要失去希望,因为有很多解决方法可以做到这一点。我要做的是使用 Firebase Cloud Functions 创建无服务器 API 平台。我将 Firebase Cloud Functions 与 Firebase Admin SDK 连接(如果我没记错的话,它还可以访问其他 Firebase 服务)。

    我使用某种电子邮件服务提供商(例如 SendGrid)向指定的电子邮件地址(应用程序从用户输入的电子邮件中获取)发送一封电子邮件,并提供一个链接以在那里验证(在发送到指定电子邮件地址的电子邮件中) )。然后,在云函数中,您可以利用 Firebase Admin SDK 更改验证状态。

    这种方法很灵活,因为它不仅可以用于通过 Firebase 身份验证来验证用户。

    希望对您有所帮助。如果您不清楚,请发表评论。 编码愉快。

    编辑:再次仔细阅读您的问题后,我意识到我的答案并不完全正确。不知何故,您仍然需要在 Firebase 身份验证数据库中添加特定用户,您不想手动执行此操作,而是让您的应用程序这样做。也许您可以在这件事上使用 Firebase Admin SDK。您可以阅读 Firebase 官方文档以了解有关 Admin SDK 的更多信息。

    【讨论】:

    • 我找到了这个firebase.google.com/docs/auth/admin/…,你认为每次将电子邮件添加到firestore集合时,是否可以生成一个电子邮件验证链接并发送它?因为我认为如果可能的话,我会将这段代码嵌套在 firestore 触发器中,每次添加电子邮件时都会触发。
    • 有了这个,我想我真的不需要在 Firebase 身份验证中添加用户
    • 如果你仔细阅读文档,他们说提供现有用户未经验证的电子邮件使用的电子邮件必须属于现有用户。,其中我认为这意味着您将要做的解决方法行不通。 Firebase 管理员会将提交的电子邮件与 Firebase 身份验证数据库中存在的类似电子邮件链接起来,如果链接成功,它将生成一个电子邮件验证链接,然后您可以使用自定义电子邮件服务/SMTP 服务器发送该链接。
    • 顺便问一下,您是否使用过 Firebase 身份验证?因为如果您不这样做,那么您可能更愿意开发自己的用户验证系统。顺便说一句,这并不难。例如:OTP 验证。您可以使用 SendGrid/任何类似的提供商,获取任何用户的电子邮件,向该用户的电子邮件发送 OTP。您可以将 OTP 存储在名为 OTP 的 Firestore 集合中或您喜欢的任何内容中。如果用户输入的 OTP 匹配,则您可以确认该用户已验证。
    • 哦,好吧,是的,我确实使用了 Firebase 身份验证,但没关系,我只需要找到一种方法来确保用户确实收到了他的电子邮件验证
    猜你喜欢
    • 2021-07-21
    • 2019-12-03
    • 2020-05-08
    • 2017-08-10
    • 2021-10-05
    • 2023-04-07
    • 2021-12-08
    • 1970-01-01
    相关资源
    最近更新 更多