1

Ich habe begonnen, Firebase zu verwenden, aber meine Erfahrung ist schrecklich.Firebase Logout funktioniert nicht

Ich kann Benutzer nicht abmelden.

Ich habe verschiedene Dinge ausprobiert und verbringe alle meine 4 Tage um herauszufinden, wie man Benutzer abmeldet, aber es gibt keine klare Option.

Ich möchte den Benutzer total singen, damit sie ein anderes Google Mail-Konto auswählen können.

Ich habe unten Code versucht:

FirebaseUser user = firebaseAuth.getCurrentUser(); 
user.unlink(user.getProviderId()); FirebaseAuth.getInstance().signOut(); 

innerhalb von

mAuth = FirebaseAuth.getInstance();//mAuth.signOut(); 
     //auth fail olarsa mAuth.signOut(); sil sonra yerne qoy 
     mAuthListener = new FirebaseAuth.AuthStateListener() { 
      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 

habe ich versucht, auch diese: Properly log out a user from android app

+0

Was ist der Fehler? –

+0

Wenn ich auf "Login" klicke, wird die E-Mail-Liste nicht angezeigt. Anmeldung vor der E-Mail, die ich zuvor ausgewählt habe @AlexMamo –

Antwort

0

Sie verwenden eine neuere Version als ich, ich bezweifle, dass sie einen neuen Fehler eingeführt. Sie erwähnten NullPointerException früher, also schlage ich vor, dass Sie sicherstellen, dass der GoogleApiClient, den Sie an Auth.GoogleSignInApi.getSignInIntent übergeben, nicht null ist.

+0

Ja, ich habe es auch versucht, und bekam keinen Fehler, dann habe ich versucht setze es auf den Button click listener, damit es Zeit hat dich zu verbinden, und es hat funktioniert !!!!!!! –

1

Wenn Sie den Firebase Auth Quickstart Beispielcode überprüfen, das Zeichen-out für Google Provider enthält diese Schritte.

Rufen Sie Auth.GoogleSignInApi.signOut() an, wenn Sie sich abmelden? Also, bitte verwenden Sie diesen Code:

private void signOut() { 
    // Firebase sign out 
    mAuth.signOut(); 

    // Google sign out 
    Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
     new ResultCallback<Status>() { 
      @Override 
      public void onResult(@NonNull Status status) { 
       //do what you want 
      } 
     }); 
} 
+0

Die aktuelle Dokumentation für Google Sign-In lautet "Um einen Benutzer abzumelden, rufen Sie signOut: FirebaseAuth.getInstance () .signOut(); 'https: //firebase.google.com/docs/auth/android/google-signin – user3175580

+0

java.lang.NullPointerException: Es wurde versucht, die virtuelle Methode 'android.content.Context com.google.android aufzurufen. gms.common.api.GoogleApiClient.getContext() es gab Fehler und ich habe es versucht, bevor –

+0

@ user3175580 es ist nicht genug, weil Benutzer nicht mit einem anderen Konto –

0

ich dieses Problem auch haben, gerade jetzt, ist die LogoutBtn in einer Schublade, wie folgt aus:

case R.id.initiates_logout: 
      if(FirebaseAuth.getInstance().getCurrentUser()!=null){ 
       new AlertDialog.Builder(this) 
         .setTitle("Text1") 
         .setMessage("Text2") 
         .setIcon(android.R.drawable.ic_dialog_alert) 
         .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int whichButton) { 
           FirebaseAuth.getInstance().signOut(); 
           LoginManager.getInstance().logOut(); 


          }}) 
         .setNegativeButton(android.R.string.no, null).show(); 
      } 
      break; 

Und ich kann ein anderes Konto nach der Abmeldung aus.