Android解析:ParseUser.logOut()不';t注销用户
我在Android上玩Parse已经有几天了,ParseUser.logOut()有问题=>它实际上没有注销当前用户 我是这样做的:Android解析:ParseUser.logOut()不';t注销用户,android,parse-platform,logout,Android,Parse Platform,Logout,我在Android上玩Parse已经有几天了,ParseUser.logOut()有问题=>它实际上没有注销当前用户 我是这样做的: private void onClickOnDisconnect() { ParseUser.logOut(); currentUser = ParseUser.getCurrentUser(); // should be null but isn't... invalidateOptionsMenu(); Toast.makeTe
private void onClickOnDisconnect() {
ParseUser.logOut();
currentUser = ParseUser.getCurrentUser(); // should be null but isn't...
invalidateOptionsMenu();
Toast.makeText(getApplicationContext(), "Disconnected...", Toast.LENGTH_LONG).show();
}
调用ParseUser.logOut()
后,ParseUser.getCurrentUser()
应该返回null(文档中说)。它仍然返回以前登录的用户。
即使我重新启动应用程序,用户仍被视为已连接
我使用的是parse framework v1.3.8(3天前下载的)。我不使用FacebookSDK,因为我已经看到了一些关于这个特定案例的问题
提前感谢试试看
ParseUser.getCurrentUser().logOut();
试一试
正如我在上面的评论中所说,我是通过以下方式实现的:
我能想象的唯一原因是,我之前与该用户注册时启用了自动用户创建功能,并且它以某种方式固定在Parse中的用户实体上。正如我在上面的评论中所说,我通过以下方式使其工作:
我能想象的唯一原因是,我以前与该用户注册时启用了自动用户创建功能,但不知何故,该用户在解析时仍然停留在用户实体上。在您的应用程序中的某个地方,可能是您最有可能将此消息发送给PFUserClass的appDelegate
[PFUser enableAutomaticUser];
在这种情况下
[PFUser currentUser];
永远不会返回零 在应用程序中的某个地方,可能是您最有可能将此消息发送给PFUserClass的appDelegate
[PFUser enableAutomaticUser];
在这种情况下
[PFUser currentUser];
永远不会返回零 遇到相同的错误。现在,我不再只将ParseUser检查为null,而是检查用户名:
ParseUser currentUser=ParseUser.getCurrentUser()
if(currentUser==null)
{
//user doesn't exist
}
else
{
if(currentUser.getUserName()==null)
{
//user oesn't exist
}
}
遇到同样的错误。现在,我不再只将ParseUser检查为null,而是检查用户名:
ParseUser currentUser=ParseUser.getCurrentUser()
if(currentUser==null)
{
//user doesn't exist
}
else
{
if(currentUser.getUserName()==null)
{
//user oesn't exist
}
}
我也有同样的问题。实际上,这是parse sdk中的一个错误,问题在没有更改任何代码的情况下得到了解决,只需安装最新的parse android sdk(撰写本文时为1.8.1)。我也遇到了同样的问题。实际上,这是parse sdk中的一个错误,问题在没有更改任何代码的情况下得到了解决,只需安装最新的parse android sdk(撰写本文时为1.8.1)。我在将注销功能与facebook登录合并时也遇到了同样的问题。这个错误很简单,也是我的一个基本错误。我在应用程序类中编写了以下代码 ParseUser.enableAutomaticUser()
这将在您每次运行应用程序时创建用户,即使您上次已注销。去掉这个解决了我的问题 我在将注销功能与facebook登录合并时也遇到了同样的问题。这个错误很简单,也是我的一个基本错误。我在应用程序类中编写了以下代码 ParseUser.enableAutomaticUser()
这将在您每次运行应用程序时创建用户,即使您上次已注销。去掉这个解决了我的问题 我也有同样的问题,因为我启用了自动用户,这会导致创建一个新的匿名用户,这里也解释了这个问题
我遇到了同样的问题,因为我启用了自动用户,这会导致创建一个新的匿名用户,这里也解释了这个问题
尝试注销当前用户对象,而不是类
ParseUser.getCurrentUser().logout();
并确保删除
ParseUser.enableAutomaticUser();
编辑:
注销时,用户实例仍然可用,但字段为空。Parse将用户的所有字段更改为空
因此,如果您想检查用户是否登录或注销,只需执行以下操作
if(ParseUser.getCurrentUser().getUsername() == null)
{ // user is out
} else {
// user is in }
尝试注销当前用户对象,而不是类
ParseUser.getCurrentUser().logout();
并确保删除
ParseUser.enableAutomaticUser();
编辑:
注销时,用户实例仍然可用,但字段为空。Parse将用户的所有字段更改为空
因此,如果您想检查用户是否登录或注销,只需执行以下操作
if(ParseUser.getCurrentUser().getUsername() == null)
{ // user is out
} else {
// user is in }
你确定它是空的吗?看到你的吐司了吗?@njzk2是的,它是空的。我看到了这篇文章,它与Facebook有关,我尝试过这个解决方案,但没有成功。@Binghammer是的,它正在显示,菜单正在正确地失效。你确定它是空的吗?看到你的吐司显示了吗?@njzk2是的,它是空的。我看到了这篇文章,它与Facebook有关,我已经尝试过这个解决方案,但没有成功。@Binghammer是的,它正在显示,菜单正在正确地失效。这与Tanks Kaypey的内容相同,但也没有成功。此外,logOut()是一个静态方法,直接在实例上调用它没有任何区别。此外,logOut()是一个静态方法,直接在实例上调用它没有任何区别。因此您可以说:if(crntUser!=null&&crntUser.getUsername()!=null){//user exist}else{//user不存在}所以您可以说:if(crntUser!=null&&crntUser.getUsername()!=null){//user exist else{//user不存在}