android - 当提供商是电子邮件/密码时,如何仅发送密码重置电子邮件

标签 android firebase firebase-authentication

我有以下内容:

public void sendEmailToExistingUser(String email) {
    mAuth.sendPasswordResetEmail(email).addOnCompleteListener(task -> {
        if (task.isSuccessful()) emailSent.setValue(true);
    });
}

即使先前注册的用户使用不同的提供商,例如 Facebook,任务也会成功。
如果用户过去使用 Facebook 登录,那封发送的电子邮件将不会重置 facebook 登录名,我不想重置 facebook 密码。

编辑:我的理解是忘记密码的情况总是发生在登录之前,因此 getCurrentUser() 始终为空。

问题:我可以添加一个条件来避免在提供商 ID 不是 firebase 电子邮件/密码时发送电子邮件吗?

最佳答案

考虑使用 fetchSignInMethodsForEmail .它将查找所提供电子邮件的关联登录方法。

但是请记住,密码重置有时可用于非密码用户恢复其帐户的一种方式,或者如果用户忘记了他们之前使用 Google 登录等。您可能可以在用户之前警告他们重置他们之前使用指定提供商登录的信息。

关于android - 当提供商是电子邮件/密码时,如何仅发送密码重置电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58158044/

相关文章:

android - Picasso 单例用法

android - 如何检查相机是否被任何应用程序打开

android - Firebase 自定义事件

android - 使用 Android Firebase 堆叠推送通知

ios - 未经身份验证的用户名测试数据库 [Firebase/Swift 3]

java - firebase 访问 token 是否自动刷新?

java - android从数据库byte[]异步加载图像

firebase - 避免向使用 Firebase 函数构建的 API 发送垃圾邮件

android - Firebase 电子邮件验证未更新状态

javascript - Firebase SDK (Web) 创建基于密码的帐户