在Android中解析迁移后,注销功能未清除ParseUser currentUser

时间:2016-12-07 13:25:56

标签: android parse-platform

我正在使用Parse SDK 1.13.1 for Android,我需要在点击按钮时注销用户。它正在工作,但当我调用ParseUser.getCurrentUser()时,它会给我最后一个登录用户而不是null。

对于Parse Initialize,我写下面的代码:

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();注销后不为空。

如何从缓存中删除当前用户?

请帮我解决这个问题。感谢

2 个答案:

答案 0 :(得分: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。

如果您[PFUser enableAutomaticUser];当前用户中设置的appDelegate,永远不会返回nill

答案 1 :(得分:0)

请查看以下内容:

public static Task<Void> logOutInBackground()

public static void logOutInBackground(LogOutCallback callback)

使用ParseUser的方法如下所示: ParseUser.logOutInBackground();

ParseUser.logOutInBackground(new LogOutCallback )

希望它能奏效......