如何验证电子邮件&在注册用户之前从EditText输入密码

时间:2017-05-20 09:29:12

标签: java android firebase-authentication email-validation

  

如何验证电子邮件&之前从EditText输入的密码   使用Android Studio注册用户...

     

电子邮件:必须包含@符号和其他一般要求密码:   必须> 6位数。

enter image description here

请修改此代码。 我的代码是......

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener{

private Button buttonRegister;
private EditText editTextEmail;
private EditText editTextPassword;
private TextView textViewSignin;

private ProgressDialog progressDialog;

private FirebaseAuth firebaseAuth;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_register);

    firebaseAuth=FirebaseAuth.getInstance();
    if (firebaseAuth.getCurrentUser()!=null){
        //profile activity here
        finish();
        startActivity(new Intent(getApplicationContext(),ProfileActivity.class));
    }

    progressDialog = new ProgressDialog(this);

    buttonRegister = (Button)findViewById(R.id.buttonRegister);
    editTextEmail = (EditText)findViewById(R.id.editTextEmail);
    editTextPassword = (EditText)findViewById(R.id.editTextPassword);
    textViewSignin = (TextView)findViewById(R.id.textViewSignin);

    buttonRegister.setOnClickListener(this);
    textViewSignin.setOnClickListener(this);
}

private void registerUser(){
    final String email = editTextEmail.getText().toString().trim();
    String password = editTextPassword.getText().toString().trim();

    //uset cannot go any further without entering password
    if(TextUtils.isEmpty(email)){
        //email is empty
        Toast.makeText(this, "Please enter email",Toast.LENGTH_SHORT).show();
        //stopping execution further
        return;
    }
    if(TextUtils.isEmpty(password)){
        //password is empty
        Toast.makeText(this, "Please enter password",Toast.LENGTH_SHORT).show();
        //stopping execution further
        return;
    }

    //if validations are ok
    //we will first show progressbar
    progressDialog.setMessage("Registerating User...");
    progressDialog.show();

    firebaseAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {

                    if(task.isSuccessful()){
                        //user is successfully registered. we will start profile activity here
                        FirebaseUser user = firebaseAuth.getCurrentUser();
                        Toast.makeText(RegisterActivity.this, "Authentication success. " + user.getUid(), Toast.LENGTH_SHORT).show();
                        progressDialog.hide();
                        finish();
                        startActivity(new Intent(getApplicationContext(),ProfileActivity.class));
                    }
                    else{
                        Toast.makeText(RegisterActivity.this, "Could not register. please try again", Toast.LENGTH_SHORT).show();
                        progressDialog.hide();
                    }

                }
            });
}

@Override
public void onClick(View v) {
    if (v==buttonRegister){
        registerUser();
    }
    if(v==textViewSignin){
        finish();
        startActivity(new Intent(this, LoginActivity.class));
    }
}
}

3 个答案:

答案 0 :(得分:1)

试试我的朋友

 String emailAddress = etSignInEmail.getText().toString().trim();
    if (etSignInPassword.getText().toString().length() < 6) {
    etSignInPassword.setError(getString("password minimum contain 6 character));
    etSignInPassword.requestFocus();
    }
    if (etSignInPassword.getText().toString().equals("")) {
    etSignInPassword.setError(getString("please enter password));
    etSignInPassword.requestFocus();
    }
    if (!android.util.Patterns.EMAIL_ADDRESS.matcher(emailAddress).matches()) {
    etSignInEmail.setError(getString("please enter valid email address));
    etSignInEmail.requestFocus();
    }
    if (etSignInEmail.getText().toString().equals("")) {
    etSignInEmail.setError(getString("please enter email address));
    etSignInEmail.requestFocus();
    }
    if (!emailAddress.equals("") &&
    etSignInPassword.getText().toString().length() >= 6 &&
    !etSignInPassword.getText().toString().trim().equals("")
    && android.util.Patterns.EMAIL_ADDRESS.matcher(emailAddress).matches()) {
    // do  your action
    }

答案 1 :(得分:1)

为什么不试试这个。

private static boolean isCompositeLambda(int number) { return number > 3 && IntStream.rangeClosed(2, (int) Math.sqrt(number)) .anyMatch(x -> number % x == 0); }

android.util.Patterns.EMAIL_ADDRES

答案 2 :(得分:0)

尝试使用此代码进行电子邮件字段验证和密码验证,并在密码字段中检查最少8个字符。

  if (isValidEmail(et_regemail.getText().toString())&&etpass1.getText().toString().length()>7){
      if (validatePassword(etpass1.getText().toString())) {
      Toast.makeText(getApplicationContext(),"Go Ahead".....
      }
      else{

       Toast.makeText(getApplicationContext(),"InvalidPassword".....
       }

}else{

 Toast.makeText(getApplicationContext(),"Invalid Email".....
}


public boolean validatePassword(final String password){
    Pattern pattern;
    Matcher matcher;
    final String PASSWORD_PATTERN = "^(?=.*[0-9])(?=.*[A-Z])(?=.* 
    [@#$%^&+=!])(?=\\S+$).{4,}$";
    pattern = Pattern.compile(PASSWORD_PATTERN);
    matcher = pattern.matcher(password);

    return matcher.matches();
}

public final static boolean isValidEmail(CharSequence target) {
    if (target == null)
        return false;

    return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
}