我正在尝试编写我的第一个应用程序,并且使用 firebase auth email-password 作为登录方法。在我的注册活动中,我需要电子邮件、密码和确认密码。我无法让应用程序在创建帐户之前检查密码是否 >= 6 个字符以及密码和确认密码是否相等。
该应用程序似乎会检查密码是否> = 6,但如果是这样,它会创建帐户而不检查密码是否=确认密码。
我还想显示一条错误消息,指出该用户名已被使用。
这是我的代码
private void signUpUser(String email, final String password) {
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful())
{
if (password.length() < 6)
snackbar = Snackbar.make(activity_criar_conta, "Your password must have at least 6 characters.", Snackbar.LENGTH_SHORT);
snackbar.show();
String pass2 = etConfirmarSenha.getText().toString();
if (!password.equals(pass2))
snackbar = Snackbar.make(activity_criar_conta, "Both password fields must be identic", Snackbar.LENGTH_SHORT);
snackbar.show();
}
else{
String emailuser = etCriarEmail.getText().toString();
snackbar = Snackbar.make(activity_criar_conta, "Your account was created with sucess: "+emailuser,Snackbar.LENGTH_SHORT);
snackbar.show();
您需要在调用 auth.createUserWithEmailAndPassword 之前检查您的条件。
您的 if 语句中还缺少 { ,因此它没有按照您的预期进行。应该看起来像这样:
private void signUpUser(String email, final String password) {
if (password.length() < 6) {
snackbar = Snackbar.make(activity_criar_conta, "Your password must have at least 6 characters.", Snackbar.LENGTH_SHORT);
snackbar.show();
return;
}
String pass2 = etConfirmarSenha.getText().toString();
if (!password.equals(pass2)) {
snackbar = Snackbar.make(activity_criar_conta, "Both password fields must be identical", Snackbar.LENGTH_SHORT);
snackbar.show();
return;
}
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
String emailuser = etCriarEmail.getText().toString();
snackbar = Snackbar.make(activity_criar_conta, "Your account was created with sucess: "+emailuser,Snackbar.LENGTH_SHORT);
snackbar.show();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)