我有以下内容:
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/