Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android解析:ParseUser.logOut()不';t注销用户_Android_Parse Platform_Logout - Fatal编程技术网

Android解析:ParseUser.logOut()不';t注销用户

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

我在Android上玩Parse已经有几天了,ParseUser.logOut()有问题=>它实际上没有注销当前用户

我是这样做的:

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不存在}