您好我正在使用解析云的Android应用程序。在我尝试从解析中获取数据之后,我已经登录系统。
但我每次都会得到一个例外
com.parse.ParseRequest $ ParseRequestException:无效的会话令牌
String userName = ParseUser.getCurrentUser().getUsername();
ParseQuery<ParseObject> parseQuery = ParseQuery.getQuery("users");
parseQuery.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException parseException) {
}
});
我们如何解决这个问题。
答案 0 :(得分:2)
谷歌搜索和解析文档没有提供太多关于此异常的信息,但我发现的常见错误很少。您应将用户视为ParseUser
,而不是ParseObject
。
ParseQuery<ParseUser> query = ParseUser.getQuery();
还有一个案例:需要指定在后台查找的内容。如果是username
,那么请写:
parseQuery.whereEqualTo("username", userName);
最后回调将包含List
与ParseUser
s,而不是ParseObject
s
query.findInBackground(new FindCallback<ParseUser>() {
public void done(List<ParseUser> objects, ParseException e) {
}
});
我不确定异常会消失,但我希望这个答案无论如何都会有用。
一些有用的链接:doc with example,answer,Doc for class ParseQuery
with examples
<强>更新强>
这是官方的doc如何处理此错误,同时我评论在ParseUser.enableRevocableSessionInBackground()
之后尝试使用Parse.initialize();
根据SDK文档,它将更新会话令牌而且只有一个情况可能无效 - ParseObject
已被删除。
希望有所帮助。
答案 1 :(得分:1)
我在登录时尝试登录时遇到此错误。
尝试拨打ParseUser.logout()
答案 2 :(得分:-1)
正如Yurets所说,你可能删除了会话对象。这可以通过卸载应用程序然后重新安装来快速解决。