Skip to content

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.google.firebase.auth.FirebaseUser.getEmail()' on a null object reference #1877

@rocketraman

Description

@rocketraman

Step 2: Describe your environment

  • Android device: moto z4
  • Android OS version: 10
  • Google Play Services version: BOM 25.12.0
  • Firebase/Play Services SDK version: BOM 25.12.0
  • FirebaseUI version: 6.2.0

Step 3: Describe the problem:

Steps to reproduce:

  1. I don't know exactly. It happened shortly after calling the Firebase.signOut() method. Perhaps there is a timing issue with FirebaseUI not recognizing that the user has signed out.

Observed Results:

Crash with the following

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.google.firebase.auth.FirebaseUser.getEmail()' on a null object reference
	at com.firebase.ui.auth.util.CredentialUtils.buildCredential(CredentialUtils.java:33)
	at com.firebase.ui.auth.ui.HelperActivityBase.startSaveCredentials(HelperActivityBase.java:72)
	at com.firebase.ui.auth.ui.FragmentBase.startSaveCredentials(FragmentBase.java:36)
	at com.firebase.ui.auth.ui.email.RegisterEmailFragment$1.onSuccess(RegisterEmailFragment.java:103)
	at com.firebase.ui.auth.ui.email.RegisterEmailFragment$1.onSuccess(RegisterEmailFragment.java:100)
	at com.firebase.ui.auth.viewmodel.ResourceObserver.onChanged(ResourceObserver.java:69)
	at com.firebase.ui.auth.viewmodel.ResourceObserver.onChanged(ResourceObserver.java:19)
	at androidx.lifecycle.LiveData.considerNotify(LiveData.java:133)
	at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:151)
	at androidx.lifecycle.LiveData.setValue(LiveData.java:309)
	at androidx.lifecycle.MutableLiveData.setValue(MutableLiveData.java:50)
	at com.firebase.ui.auth.viewmodel.OperableViewModel.setResult(OperableViewModel.java:25)
	at com.firebase.ui.auth.viewmodel.SignInViewModelBase.setResult(SignInViewModelBase.java:23)
	at com.firebase.ui.auth.viewmodel.SignInViewModelBase.handleSuccess(SignInViewModelBase.java:27)
	at com.firebase.ui.auth.viewmodel.email.EmailProviderResponseHandler.access$700(EmailProviderResponseHandler.java:31)
	at com.firebase.ui.auth.viewmodel.email.EmailProviderResponseHandler$2.onSuccess(EmailProviderResponseHandler.java:60)
	at com.firebase.ui.auth.viewmodel.email.EmailProviderResponseHandler$2.onSuccess(EmailProviderResponseHandler.java:57)
	at com.google.android.gms.tasks.zzn.run(Unknown Source:4)
	at android.os.Handler.handleCallback(Handler.java:883)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:241)
	at android.app.ActivityThread.main(ActivityThread.java:7617)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)

Expected Results:

  • No crash

Relevant Code:

I don't have any specific way to reproduce this, and I'm not doing anything special with Firebase / FirebaseUI. The stack trace seems to be a background process that triggers on a network response, so that makes me think there is some kind of race condition in Firebase/FirebaseUI.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions