2016-12-07 11 views
0

Android用Parse SDK 1.13.1を使用しており、ボタンクリック時にユーザーをログアウトする必要があります。それは動作していますが、ParseUser.getCurrentUser()を呼び出すと、nullの代わりに最後にログインしたユーザーになります。私はコードの下に書き解析の初期化のためにAndroidでParseUser currentUserをクリアしないログアウト機能

:ログアウトについては

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

私はコード

ParseUser.logOut(); 

の下に書いても

ParseUser.getCurrentUser().logOut(); 

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

を試してみました。しかし、それはParseUser.getCurrentUserようです();ログアウトした後はnullになりません。

キャッシュから現在のユーザーを削除するにはどうすればよいですか?

これを解決するために手伝ってください。ありがとう

答えて

0

サインアップメソッドまたはログインメソッドを使用するたびに、ユーザーはディスクにキャッシュされます。このキャッシュをセッションとして扱い、ユーザーがログインしていると自動的に判断できます。

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

現在のユーザーをログアウトすることでクリアできます。

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

あなたが有効に自動ユーザー作成を持っている場合は、ログアウト、

などすべてのあなたの機能が正しく設定されていることを、あなたは再びユーザーを認証していないことを確認し、その後、現在のユーザーを取得することは生成されます新しい匿名ユーザー。これはデフォルトではスタータープロジェクトで有効になっており、ユーザーとACLの使用をすぐに開始できます。

あなたappDelegate,、現在のユーザーで[PFUser enableAutomaticUser];セットがnill

+0

これはバグかもしれないことを示唆しているレポに問題が見つかりました。 https://github.com/ParsePlatform/Parse-SDK-Android/issues/539 – Cliffordwh

0

を返すことはありません場合は、以下を確認してください:以下ParseUserなどで

public static Task<Void> logOutInBackground() 

または

public static void logOutInBackground(LogOutCallback callback) 

方法: ParseUser.logOutInBackground();または

ParseUser.logOutInBackground(new LogOutCallback) 

希望します...

+0

提案ありがとうございます。 ParseUser.logOutInBackground(新しいLogOutCallback)を試しました。これはParseUser.getCurrentUser()がnullであることを示しています。 しかし、ParseUser.getCurrentUser()のようなユーザーの詳細を2度目に取得すると、それは以前にログオンしたユーザーになります。 – Dinesh

関連する問題