如何首先在Firebase中发送电子邮件验证,然后创建帐户?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何首先在Firebase中发送电子邮件验证,然后创建帐户?相关的知识,希望对你有一定的参考价值。
在我的注册活动中,用户必须输入电子邮件地址,然后输入大于6的密码,并带有特殊符号等。问题是,在满足所有密码要求后,用户单击注册按钮,然后单击吐司消息弹出,表明已发送电子邮件,但同时用户已登录。按下电话的后退按钮时,用户位于应用程序中,只有在验证其地址后,该用户才应在该应用程序中。
这是我的电子邮件注册活动的一部分:
btnSignUp.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
String email = inputEmail.getText().toString();
String password = inputPassword.getText().toString();
String passwordConfirm = inputPasswordConfirm.getText().toString();
if (password.length() < 6)
Toast.makeText(getApplicationContext(), "Das Passwort ist zu kurz, gebe mindestens 6 Zeichen ein.", Toast.LENGTH_SHORT).show();
return;
if (!password.matches("^(?=.*[A-Za-z])(?=.*\\d)(?=.*[$@$!%*#?&])[A-Za-z\\d$@$!%*#?&]8,$"))
Toast.makeText(RegistrationEmailActivity.this, "Dein Passwort hat mindestens eine der folgenden Anforderungen nicht: Großbuchstaben, Zahl, Spezialzeichen.", Toast.LENGTH_SHORT).show();
return;
if (TextUtils.isEmpty(passwordConfirm))
Toast.makeText(getApplicationContext(), "Bestätige dein Passwort", Toast.LENGTH_SHORT).show();
else if (!password.equals(passwordConfirm))
Toast.makeText(getApplicationContext(), "Die Passwörter stimmen nicht überein. Bitte überprüfe deine Eingabe.", Toast.LENGTH_SHORT).show();
else
progressBar.setVisibility(View.VISIBLE);
//create user
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener( new OnCompleteListener<AuthResult>()
@Override
public void onComplete(@NonNull Task<AuthResult> task)
Toast.makeText(RegistrationEmailActivity.this, "Welcome to the app", Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
if (!task.isSuccessful())
Toast.makeText(RegistrationEmailActivity.this, "Authentication failed." + task.getException(),
Toast.LENGTH_SHORT).show();
else
auth.getCurrentUser().sendEmailVerification().addOnCompleteListener(new OnCompleteListener<Void>()
@Override
public void onComplete(@NonNull Task<Void> task)
if (task.isSuccessful())
Toast.makeText(RegistrationEmailActivity.this, "Du wurdest erfolgreich registriert. Schau in deinem Postfach nach und klicke auf den Link, " +
"damit die E-Mail verifiziert wird und du dich einloggen kannst.", Toast.LENGTH_SHORT).show();
else
Toast.makeText(RegistrationEmailActivity.this, "Das hat leider nicht geklappt. Überprüfe deine E-Mail und versuche es erneut.", Toast.LENGTH_SHORT).show();
);
);
);
我使用了本教程https://www.youtube.com/watch?v=06YKlMdWyMM来验证电子邮件。在19:09,我想他显示了一些解决问题的方法,但是我不知道在哪里实现此代码。
答案
当您在Firebase身份验证上创建帐户时,该用户将自动登录。无法阻止它,这是预期的行为。
以上是关于如何首先在Firebase中发送电子邮件验证,然后创建帐户?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Gmail SMTP 设置在 Joomla 中发送电子邮件。收到 SMTP 服务器错误:需要 5.5.1 身份验证。如何解决这个问题?
仅在确认付款后,如何在 NodeMailer 中发送电子邮件?
在测试 php 以在 xampp 中发送电子邮件验证时遇到问题