skip to Main Content

I’m new to Android, there are 2 modes in the code I wrote (so we can think of it). When I leave the edittexts blank in the registration section, there is no problem, but when I leave the edittexts blank in the mode I am trying to log in, it throws them out of the application.

step by step:

Step 1: registration mode > leaving e-mail password and username blank, no problem

step 2: login mode > leaving email and password blank will throw an error and kick you out of the app

this is my error message: java.lang.IllegalArgumentException: Given String is empty or null

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_giris);

        username = (EditText) findViewById(R.id.kullaniciadi);
        password = (EditText) findViewById(R.id.sifre);
        eposta = (EditText) findViewById(R.id.eposta);

        button = (Button) findViewById(R.id.giris);

        login = (TextView) findViewById(R.id.Logininfo);
        forgotpas = (TextView) findViewById(R.id.forgotpas);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(eposta.getText().toString().isEmpty() || password.getText().toString().isEmpty()) {
                    //sign up modu
                    if(signup && username.getText().toString().isEmpty()){
                        Toast.makeText(Giris_activity.this, "Invalid input", Toast.LENGTH_SHORT).show();
                        return;
                        //eğer eposta ve şifre doğruysa gir---eğer signup modundaysak username de doğruysa gir
                    }
                }

                if(signup)
                {
                    handlesignup();
                }else
                {
                    handlelogin();
                }
            }
        });

        forgotpas.setVisibility(View.GONE);
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (signup) {
                    signup = false;
                    username.setVisibility(View.GONE);
                    forgotpas.setVisibility(View.VISIBLE);
                    button.setText("Log in");
                    login.setText("Dont have an account? Sign up");
                } else {
                    signup = true;
                    username.setVisibility(View.VISIBLE);
                    forgotpas.setVisibility(View.GONE);
                    button.setText("Sign up");
                    login.setText("Already have an account? Log in");
                }
            }
        });

        forgotpas.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                openforgotpas();
            }
        });
    }

    //-----------------------firebase---------------------------
    private  void handlesignup() {
        FirebaseAuth.getInstance().createUserWithEmailAndPassword(eposta.getText().toString(),password.getText().toString()).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(task.isSuccessful())
                {
                    Toast.makeText(Giris_activity.this, "Signed up successfully, you can login", Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(Giris_activity.this, task.getException().getLocalizedMessage(), Toast.LENGTH_LONG).show();
                }
                    
            }
        });

    }

    private void handlelogin() {
        FirebaseAuth.getInstance().signInWithEmailAndPassword(eposta.getText().toString(),password.getText().toString()).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if(task.isSuccessful())
                {
                    Toast.makeText(Giris_activity.this, "Logged in successfully", Toast.LENGTH_SHORT).show();
                    openbaslangic();
                }else{
                    Toast.makeText(Giris_activity.this, task.getException().getLocalizedMessage(), Toast.LENGTH_LONG).show();
                }

            }
        });
    }
}```

2

Answers


  1. Modify button click like this

    You’ve to validate before submitting firebase edit text values.
    User name optional but when you read it’s possible to throw null pointer exception

    button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if(eposta.getText().toString().isEmpty() || password.getText().toString().isEmpty()) {
                        //sign up modu
                        return;
                    }
                   if(signup && username.getText().toString().isEmpty()){
                            Toast.makeText(Giris_activity.this, "Invalid input", Toast.LENGTH_SHORT).show();
                            return;
                            //eğer eposta ve şifre doğruysa gir---eğer signup modundaysak username de doğruysa gir
                   }
    
                    if(signup){
                        handlesignup();
                    }else{
                        handlelogin();
                    }
                }
            });
    
    Login or Signup to reply.
  2. leaving e-mail password and username blank, no problem

    There is no crash because you have a partial validation (although I’m not sure why it works only for one field and only for the signing up proccess)

    if (signup && username.getText().toString().isEmpty()) { return; }
    

    leaving email and password blank will throw an error and kick you out of the app

    You’re not validating any fields here and calling signInWithEmailAndPassword() with empty strings will cause a crash which comes from Firebase SDK.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search