Ich möchte eine Absicht zu einer Aktivität passieren können, basierend auf, wenn die Login-Statusänderungen für den BenutzerFirebase Authentifizierung Auth Zustand geändert
i innerhalb der OnCreate Methode des LoginActivity zu folgenden AuthStateListener haben
wenn der Benutzer in dann angemeldet ist, möchte ich sie an die MainActivity
jedoch weitergeleitet werden, wenn der Benutzer dann abgemeldet wird sie die LoginActivity
das Problem kommt zu goto brauchen, wenn sie angemeldet sind o ut, es bleibt in einer Endlosschleife stecken und feuert konstant die LoginActivity ab.
Gibt es eine Möglichkeit zu sagen, wo sich der Benutzer befindet (welche Aktivität), wenn sich der Authentifizierungsstatus ändert. Auf diese Weise kann ich den abgemeldeten Absicht Anruf innerhalb eines if-Anweisung zu überprüfen, ob sie bereits am LoginAcitvity ist, so dass die Schleife zu verhindern
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Intent intent = new Intent(getBaseContext(), MainActivity.class);
//intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent);
Log.d("LOG_Login", "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
String className = this.getClass().getSimpleName();
if (!(className == "LoginActivity")) {
Intent intent = new Intent(getBaseContext(), LoginActivity.class);
//intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent);
}
Log.d("LOG_Login", "onAuthStateChanged:signed_out");
}
// ...
}
};
Von welchem 'Activity' läuft der' FirebaseAuth'-Code? Wenn Sie sich in Ihrer LoginActivity befinden, brauchen Sie sich keine Gedanken über das Starten dieser Aktivität zu machen, stattdessen können Sie die Benutzeroberfläche löschen, zum Beispiel die Login-Felder (Benutzername/Passwort). – ishmaelMakitla
Der FirebaseAuth wird in der LoginActivity OnCreate aufgerufen. Der Benutzer kann sich jedoch von einer anderen Aktivität abmelden. Wenn ja, möchte ich sie zurück zum Anmeldebildschirm senden. Wenn ich den Vorsatz auszeichne, wenn der Status auf "Abgemeldet" wechselt, bleibt der Benutzer auf dem aktuellen Bildschirm. – PowerMan2015
Bin ich der Meinung, dass ich diesen AuthListener nur einmal hinzufügen muss oder muss ich ihn für jede Aktivität wiederholen? – PowerMan2015