2016-12-07 2 views
0

Ich benutze Parse SDK 1.13.1 für Android und ich muss Benutzer beim Klicken auf die Schaltfläche abmelden. Es funktioniert, aber wenn ich ParseUser.getCurrentUser() aufrufen, gibt es mir zuletzt eingeloggten Benutzer statt Null.Abmelden Funktion nicht ParseUser currentUser nach Pars Migration in Android

Für Parse initialisieren schreiben i unten Code:

Parse.initialize(new Parse.Configuration.Builder(this).applicationId("PARSE_APPLICATIONID").clientKey("PARSE_CLIENT_KEY").server("PARSE_SERVER_URL").build()); 

Für Abmelde ich schreibe Code unten

ParseUser.logOut(); 

und versuchte auch

ParseUser.getCurrentUser().logOut(); 

ParseUser currentUser = ParseUser.getCurrentUser(); // this should be null but not 

Aber es scheint, dass ParseUser.getCurrentUser(); nach dem Abmelden ist nicht null.

Wie kann ich den aktuellen Benutzer aus dem Cache entfernen?

Bitte helfen Sie mir, dies zu lösen. Danke

Antwort

0

Immer wenn Sie irgendwelche Anmeldungs- oder Login-Methoden verwenden, wird der Benutzer auf der Festplatte zwischengespeichert. Sie können diesen Cache als Session, behandeln und automatisch davon ausgehen, der Benutzer angemeldet ist.

ParseUser currentUser = ParseUser.getCurrentUser(); 
if (currentUser != null) { 
    // do stuff with the user 
} else { 
    // show the signup or login screen 
} 

Sie den aktuellen Benutzer sie durch Ausloggen löschen.

ParseUser.logOut(); 
ParseUser currentUser = ParseUser.getCurrentUser(); // this will now be null 

Stellen Sie sicher, dass Sie alle Ihre Funktionen richtig eingestellt haben und dass Sie den Benutzer nicht authentifizieren wieder usw.

Wenn Sie Automatische Erstellung eines Benutzers aktiviert haben, sich abzumelden und dann den aktuellen Benutzer das Abrufen wird ein produzieren neuer anonymer Benutzer Dies ist standardmäßig in den Starter-Projekten aktiviert, sodass Sie Benutzer und ACLs sofort verwenden können.

wenn [PFUser enableAutomaticUser]; Satz in Ihrem appDelegate, aktuellen Benutzer nie

+0

Ein Problem im Repo gefunden, das darauf hindeutet, dass es sich um einen Fehler handeln könnte. https://github.com/ParsePlatform/Parse-SDK-Android/issues/539 – Cliffordwh

0

Bitte überprüfen Sie unter nill zurück:

public static Task<Void> logOutInBackground() 

oder

public static void logOutInBackground(LogOutCallback callback) 

Methode mit ParseUser wie unten: ParseUser.logOutInBackground(); oder

ParseUser.logOutInBackground(new LogOutCallback) 

Ich hoffe, es wird funktionieren ...

+0

Danke für den Vorschlag. Ich habe versucht, ParseUser.logOutInBackground (neues LogOutCallback) dies ist es ParseUser.getCurrentUser() ist Null. Aber nach dem zweiten Mal holen Benutzerdetails wie ParseUser.getCurrentUser() gibt es vorher geloggten Benutzer. – Dinesh

Verwandte Themen