如何在发送重置电子邮件之前检查用户是否存在于 firebase 中?

How to check whether a user is exist in firebase before sending reset email?

我在 React Native 应用程序开发中使用 Firebase 身份验证。我面临的问题是在实施重置密码功能时,即使用户不是 Firebase 中的注册用户,他们也会收到电子邮件。

  1. 如何只向 Firebase 注册用户发送重置密码电子邮件?

  2. 如何从前端(React Native)实现这一点?

这是我正在使用的代码。

import firebase from '@react-native-firebase/app';

export function onForgotPassword(email: string) {
  firebase
    .auth()
    .sendPasswordResetEmail(email)
    .then(() => {
      // alert('Please check your email...');
    })
    .catch((e) => {
      NLog.log(e);
    });
}

提前致谢。

  1. 您应该使用 Firebase Admin 和 Cloud Functions。通过电子邮件获取用户(如果存在)然后发送电子邮件。如果没有抛出错误。

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

  1. 此任务不应在 front-end 中。据我了解Google的策略。您在后端处理安全性。想想有人可以使用 Front-end 库来查询一堆你的用户电子邮件。处理这种情况的策略你可以研究速率限制或延迟响应。

我可能会同意 Anthony 的评论并将其留给 Firebase 来解决。

如果您真的想在代码中处理它,您可以use fetchSignInMethodsForEmail在尝试向其发送重置消息之前检查是否已知任何提供商的电子邮件地址。