Firebase: 发送密码重置电子邮件

huangapple 未分类评论45阅读模式
英文:

Firebase : SendPassworResetEmail

问题

我正在使用 Java 和 Firebase。在这种情况下,当使用 "sendPasswordResetEmail" 时,它没有将邮件发送给我。我已经检查过了,邮箱是从一个 editText 中获取的,我已经验证了邮箱的值是否被正确地获取了。我用已注册过的邮箱进行了测试,但它总是显示一条消息,以防任务不成功。

这个操作是在一个弹出窗口中执行的:

private TextView confirmar;
private EditText correo;
private String sCorreo = "";
private FirebaseAuth fireAuth;
private ProgressDialog pDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {

    fireAuth = FirebaseAuth.getInstance();
    pDialog = new ProgressDialog(this);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pop_reset_password);
    confirmar = (TextView) findViewById(R.id.terminar_popResetP);
    correo = (EditText) findViewById(R.id.correo_popResetP);

    DisplayMetrics medidas = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(medidas);

    int ancho = medidas.widthPixels;
    int alto = medidas.heightPixels;

    getWindow().setLayout((int)(ancho*0.85), (int)(alto*0.5));
}

public void Cerrar(View view){
    finish();
}

public void BtnReset(View view){
    sCorreo = correo.getText().toString();
    if(sCorreo.contains("@") && sCorreo.contains(".")){
        confirmar.setVisibility(View.INVISIBLE);
        pDialog.setMessage("Enviando enlace...");
        pDialog.setCanceledOnTouchOutside(false);
        pDialog.show();
        ResetPassword();
    }else {
        confirmar.setText("Ingrese correo electronico valido.");
        confirmar.setVisibility(View.VISIBLE);
    }
}

public void ResetPassword (){
    fireAuth.setLanguageCode("es");
    fireAuth.sendPasswordResetEmail(sCorreo).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()){
                //message: task is successful.
                confirmar.setText("Se ha enviado un correo para restablecer tu contraseña.");
                confirmar.setVisibility(View.VISIBLE);
            }else {
                //message: task not completed.
                confirmar.setText("El enlace de restablecimiento de contraseña no pudo ser enviado, verifique el correo escrito.");
                confirmar.setVisibility(View.VISIBLE);
            }
            pDialog.dismiss();
        }
    });
}

无论您用什么邮箱进行测试,它总是显示任务未完成的消息,并且明显没有消息到达我的邮箱;它总是显示否定的答案,就像邮箱无效或不存在一样。

英文:

I am using firebase with java and in this case when using the "sendPasswordResetEmail" it does not send me the mail, I already checked and the email was taken from an editText, I already verified that the value of the email is taken correctly, I tested it with emails that I have registered and it always shows me a message that is in case the task is not successful.
This operation is executed in a pop-up:

private TextView confirmar;
private EditText correo;
private String sCorreo = &quot;&quot;;
private FirebaseAuth fireAuth;
private ProgressDialog pDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {

    fireAuth = FirebaseAuth.getInstance();
    pDialog = new ProgressDialog(this);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pop_reset_password);
    confirmar = (TextView) findViewById(R.id.terminar_popResetP);
    correo = (EditText) findViewById(R.id.correo_popResetP);

    DisplayMetrics medidas = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(medidas);

    int ancho = medidas.widthPixels;
    int alto = medidas.heightPixels;

    getWindow().setLayout((int)(ancho*0.85), (int)(alto*0.5));
}

public void Cerrar(View view){
    finish();
}

public void BtnReset(View view){
    sCorreo = correo.getText().toString();
    if(sCorreo.contains(&quot;@&quot;) &amp;&amp; sCorreo.contains(&quot;.&quot;)){
        confirmar.setVisibility(View.INVISIBLE);
        pDialog.setMessage(&quot;Enviando enlace...&quot;);
        pDialog.setCanceledOnTouchOutside(false);
        pDialog.show();
        ResetPassword();
    }else {
        confirmar.setText(&quot;Ingrese correo electronico valido.&quot;);
        confirmar.setVisibility(View.VISIBLE);
    }
}

public void ResetPassword (){
    fireAuth.setLanguageCode(&quot;es&quot;);
    fireAuth.sendPasswordResetEmail(sCorreo).addOnCompleteListener(new OnCompleteListener&lt;Void&gt;() {
        @Override
        public void onComplete(@NonNull Task&lt;Void&gt; task) {
            if (task.isSuccessful()){
                //message: task is successful.
                confirmar.setText(&quot;Se ha enviado un correo para restablecer tu contrase&#241;a.&quot;);
                confirmar.setVisibility(View.VISIBLE);
            }else {
                //message: task not completed.
                confirmar.setText(&quot;El enlace de restablecimiento de contrase&#241;a no pudo ser enviado, 
                 verifique el correo escrito.&quot;);
                confirmar.setVisibility(View.VISIBLE);
            }
            pDialog.dismiss();
        }
    });
}

No matter the email you use to do the test, it always shows me the task not completed message and clearly no message reaches my email; It always shows me the negative answer as if the email was not valid or did not exist.

huangapple
  • 本文由 发表于 2020年7月27日 02:13:25
  • 转载请务必保留本文链接:https://java.coder-hub.com/63103943.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定