John Doe
John Doe

Reputation: 91

Android auth firebase error: Local module descriptor class for com.google.firebase.auth not found



    public class RegisterActivity extends AppCompatActivity {
    private FirebaseAuth mAuth;
    private FirebaseAuth.AuthStateListener mAuthListener;

    private EditText mUsernameField;
    private EditText mPasswordField;
    private EditText mConfirmPasswordField;

    private Button mRegisterButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        mUsernameField = (EditText) findViewById(R.id.enterUsername);
        mPasswordField = (EditText) findViewById(R.id.enterPassword);
        mConfirmPasswordField = (EditText) findViewById(R.id.confirmPassword);
        mRegisterButton = (Button) findViewById(R.id.confirmRegistration);

        mRegisterButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                createAccount(mUsernameField.getText().toString(), mPasswordField.getText().toString());
            }
        });
        mAuth = FirebaseAuth.getInstance();

        mAuthListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                FirebaseUser user = firebaseAuth.getCurrentUser();
                if (user != null) {
                    // User is signed in
                    Log.d("account", "onAuthStateChanged:signed_in:" + user.getUid());
                } else {
                    // User is signed out
                    Log.d("account", "onAuthStateChanged:signed_out");
                }
                // ...
            }
        };
    }

    @Override
    public void onStart() {
        super.onStart();
        mAuth.addAuthStateListener(mAuthListener);
    }

    @Override
    public void onStop() {
        super.onStop();
        if (mAuthListener != null) {
            mAuth.removeAuthStateListener(mAuthListener);
        }
    }

    private void createAccount(String email, String password) {
        Log.d("account", "createAccount:" + email);
        if (!validateForm()) {
            return;
        }

        // [START create_user_with_email]
        mAuth.createUserWithEmailAndPassword(email, password)
                .addOnCompleteListener(this, new OnCompleteListener() {
                    @Override
                    public void onComplete(@NonNull Task task) {
                        Log.d("account", "createUserWithEmail:onComplete:" + task.isSuccessful());

                        // If sign in fails, display a message to the user. If sign in succeeds
                        // the auth state listener will be notified and logic to handle the
                        // signed in user can be handled in the listener.
                        if (!task.isSuccessful()) {
                            Toast.makeText(RegisterActivity.this, R.string.register_failed,
                                    Toast.LENGTH_SHORT).show();
                        }

                        else {
                            Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
                            RegisterActivity.this.startActivity(intent);
                            finish();
                        }
                    }
                });
        // [END create_user_with_email]
    }

    private boolean validateForm() {
        boolean valid = true;

        String email = mUsernameField.getText().toString();
        if (TextUtils.isEmpty(email)) {
            mUsernameField.setError("Required.");
            valid = false;
        } else {
            mUsernameField.setError(null);
        }

        String password = mPasswordField.getText().toString();
        if (TextUtils.isEmpty(password)) {
            mPasswordField.setError("Required.");
            valid = false;
        } else {
            mPasswordField.setError(null);
        }

        String confirmPassword = mConfirmPasswordField.getText().toString();
        if (TextUtils.isEmpty(confirmPassword)) {
            mConfirmPasswordField.setError("Required.");
            valid = false;
        } else {
            mConfirmPasswordField.setError(null);
        }

        if(!confirmPassword.equals(password)) {
            mConfirmPasswordField.setError("Passwords must be the same.");
            valid = false;
        }

        return valid;
    }

}

 

W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
W/GooglePlayServicesUtil: Google Play Store is missing.
I/art: Background partial concurrent mark sweep GC freed 5866(313KB) AllocSpace objects, 1(14KB) LOS objects, 39% free, 2MB/4MB, paused 5.176ms total 27.761ms
D/account: createUserWithEmail:onComplete:false 

Upvotes: 9

Views: 55558

Answers (5)

TAHA SULTAN TEMURI
TAHA SULTAN TEMURI

Reputation: 5191

Same thing happened with me because I was using old auth version as you can see the old one is mentioned and commented out and the new one is at the bottom inside dependencies.

enter image description here

So always try to follow dependencies that are mentioned here

Upvotes: 1

Jawand Singh
Jawand Singh

Reputation: 2046

In my case, I was debugging the application and was missing the SHA1 Key in my firebase project configuration. If you are debugging make sure you have your SHA1 Key in place.

Upvotes: 3

Niraj Niroula
Niraj Niroula

Reputation: 2424

Add a log in onComplete() listener of createUserWithEmailAndPassword() to see what exactly is the reason behind the failure.

   if (!task.isSuccessful()) {
    Log.e(TAG, "onComplete: Failed=" + task.getException().getMessage()); 
    }

This can be due to the password or email you entered to create an account. Check:

  • if the email you entered is in proper format and does exist.
  • if password is strong enough to be accepted (usually not less than 6 letters).
  • if there is already an account with the same email.

Upvotes: 6

AAryan
AAryan

Reputation: 20140

Can you check your Google Play Services version?

Prerequisites :

  • An Android device running Google Play services 9.0.0 or later
  • The Google Play services SDK from the Android SDK Manager
  • Android Studio 1.5 or higher
  • An Android Studio project and its package name.

One of the reason for this problem could be, your Sign In Method inside Firebase > Auth Dashboard might be disabled.

EDIT

The 10.2.1 version wasn't available for downloading from any (virtual) device that you tested, required update.

The version of Google Play Services shown in the Extras section at the bottom of the Standalone SDK Manager has no effect on the version used by an emulator. The emulators run on system images configured to contain some particular version of Play Services, which is not always the same.

You should confirm that you have downloaded the latest emulator images having version compatibility like version 10.2.1(latest).

Upvotes: 1

Option 1: Go to Firebase Console < Authentication < SIGN-IN METHOD, and see if you are using it in the Anonymous state. If you are, disable that and enable Email/Password or whichever login method you are using.

Option 2: Check if the device you are testing with is running Google Play Services 9.0.0 or later.

Upvotes: 6

Related Questions