@Override
 @WorkerThread
 @Nullable
 public FirebaseUser signInWithEmailPassword(
     @NonNull String emailAddress, @NonNull String password) {
   AuthResult authResult = await(mFirebaseAuth.signInWithEmailAndPassword(emailAddress, password));
   return authResult == null ? null : authResult.getUser();
 }
  @Override
  public void onClick(View v) {
    switch (v.getId()) {
      case R.id.btnLogin:
        if (!validEmail()) {
          return;
        }

        if (!validPassword()) {
          return;
        }

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

                    if (task.isSuccessful()) {
                      startActivity(new Intent(LoginActivity.this, MainActivity.class));
                      finish();
                    } else {
                      Util.showSnackBar(clGeneral, getString(R.string.msg_invalid_login));
                    }
                  }
                });

        break;
      case R.id.lblCreateAccount:
        startActivity(new Intent(this, CreateAccountActivity.class));
        finish();
        break;
      case R.id.lblRecoveryPassword:
        FragmentManager fm = this.getSupportFragmentManager();
        RecoveryDialogFragment recoveryDialogFragment = new RecoveryDialogFragment();
        recoveryDialogFragment.show(fm, "layout_filter_checkbox_dialog");
        break;
      default:
        break;
    }
  }