0

Ich melde mich mit der Google-Authentifizierung an. Es wird eine Absicht zu einem anderen Java starten. In diesem Fragment habe ich einen Abmeldeschalter, aber jedes Mal, wenn ich mich abmelden möchte, stürzt die App ab. Können Sie mir helfen? :)Wie kann man sich von der Google-Authentifizierung in einem anderen Fragment abmelden?

Die Fehlermeldung erhalte ich ist:

java.lang.NullPointerException: Der Versuch, virtuelle Methode ‚android.content.Context com.google.android.gms.common.api.GoogleApiClient aufzurufen .getContext()‘auf ein null-Objekt Referenz

Code:

public class Setttings extends Activity { 

private Button msigno; 
private FirebaseAuth mAuth; 

private GoogleApiClient mGoogleApiClient; 

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.settings); 


    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 

    int width = dm.widthPixels; 
    int height = dm.widthPixels; 

    getWindow().setLayout((int)(width*0.95),(int) (height*0.93)); 

    msigno = (Button) findViewById(R.id.signout); 

    msigno.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mAuth = FirebaseAuth.getInstance(); 

      switch (v.getId()) { 
       // ... 
       case R.id.signout: 
        signOut(); 
        break; 
       // ... 

      } 
      mAuth.signOut(); 

      // Google sign out 
      Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
        new ResultCallback<Status>() { 
         @Override 
         public void onResult(@NonNull Status status) { 
         } 
        }); 
      Intent intent2 = new Intent(Setttings.this, MainActivity.class); 
      startActivity(intent2); 

     } 
    }); 



} 
private void signOut() { 
    Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
      new ResultCallback<Status>() { 
       @Override 
       public void onResult(Status status) { 
        // ... 
       } 
      }); 
} 
} 

Antwort

1

benötigen API-Client zu initialisieren, um sich abzumelden.

@Override 
protected void onStart() { 
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestEmail() 
      .build(); 
    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
      .build(); 
    mGoogleApiClient.connect(); 
    super.onStart(); 
} 
Verwandte Themen