2017-07-21 27 views
1

我想编程我的第一个应用程序,我正在使用Firebase身份验证电子邮件密码作为我的登录方法。在我的注册活动中,我想要有电子邮件,密码和确认密码。我无法让应用程序检查密码> = 6个字符,并且在创建帐户之前密码和确认密码相等。 该应用程序似乎检查密码> = 6,但如果这是真的,它会创建该帐户,而不检查密码=确认密码。 我也想显示一条错误消息,说用户名已被使用。试图设置与firebase身份验证确认密码

这里是我的代码

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(); 

回答

1

你想打电话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(); 
+1

非常感谢你Ian Barber,真的解决了我的问题。 –