'How to solve Attempt to invoke virtual method 'void com.google.firebase.auth.FirebaseAuth.signOut()' on a null object reference?
I have two activities (mainactivity
and main2activity
). I got the Google login code from GitHub Firebase login demo. When in SignIn with Google, it redirects to second activity which is the navigation drawer activity, in the drawer, I placed SignOut where it gives me error:
Attempt to invoke virtual method 'void com.google.firebase.auth.FirebaseAuth.signOut()' on a null object reference
SignOut method in mainactivity
is
public void signOut() {
// Firebase sign out
mAuth.signOut();
LoginManager.getInstance().logOut();
// Google sign out
Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
updateUI(null);
}
});
}
This is how I called the method:
MainActivity ma = new MainActivity();
ma.signOut();
How to SignOut from drawer?
Solution 1:[1]
Never use new to create an Activity. Activities should only be created by the framework. You should have an instance of the signin from when you loggedin, use that.
Solution 2:[2]
It's Late but some guys will found it helpful . In Your MainAcivity.
Add this line of code.
FirebaseAuth mAuth = FirebaseAuth.getInstance();
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Gabe Sechan |
Solution 2 | Dharmik A Viv |