Java 我如何以用户身份在Parse上存储和加载会话?
我目前正在为现有的IOS应用程序开发一个Android应用程序,所以使用Session对象在Parse上存储一些数据对我来说至关重要 至于创建和上传会话进行解析,我没有问题Java 我如何以用户身份在Parse上存储和加载会话?,java,android,session,parse-platform,Java,Android,Session,Parse Platform,我目前正在为现有的IOS应用程序开发一个Android应用程序,所以使用Session对象在Parse上存储一些数据对我来说至关重要 至于创建和上传会话进行解析,我没有问题 public static void syncUser() { ParseUser.getCurrentUser().fetchInBackground(new GetCallback<ParseObject>() { @Override public void done(
public static void syncUser() {
ParseUser.getCurrentUser().fetchInBackground(new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
if (e != null) {
Log.d("", "SYNC ERROR");
e.printStackTrace();
}
if (object != null) {
syncSessions();
}
}
});
}
private static void syncSessions() {
ParseQuery<ParseSession> query = ParseQuery.getQuery(ParseSession.class);
query.fromLocalDatastore();
query.findInBackground(new FindCallback<ParseSession>() {
@Override
public void done(List<ParseSession> objects, ParseException e) {
for (ParseSession session : objects) {
fetchSession(session, null);
}
}
});
}
public static void fetchSession(final ParseSession session, final OnResultCallback cb) {
session.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e != null) {
if (cb != null)
cb.onResult(false);
e.printStackTrace();
} else {
if (cb != null)
cb.onResult(true);
ParseRelation<ParseSession> relation = ParseUser.getCurrentUser().getRelation("sessions");
relation.add(session);
syncUser();
}
}
});
}
public static void addNewSession(Date date, String link, int successValue) {
final ParseSession session = new ParseSession();
session.put("date", date);
session.put("link", link);
session.put("successValue", successValue);
session.pinInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e != null)
e.printStackTrace();
else {
fetchSession(session, new ParseManager.OnResultCallback() {
@Override
public void onResult(boolean success) {
if (success) {
try {
session.unpin();
} catch (ParseException e) {
e.printStackTrace();
}
}
}
});
}
}
});
}
public interface OnResultCallback {
void onResult(boolean success);
}
IOS上非常相似的代码可以很好地处理“会话”关系。我犯了什么错误
UPD。我注意到,只有在allready使用addNewSession()发送一些自定义创建的会话进行解析,然后尝试使用getSessions()获取会话时,才会出现此异常。也许创建和发送会话是问题所在?我找到了解决方案。将新创建的会话添加到与的用户关系后
ParseRelation<ParseSession> relation = ParseUser.getCurrentUser().getRelation("sessions");
relation.add(session);
parserelationrelation=ParseUser.getCurrentUser().getRelation(“会话”);
关系。添加(会话);
我试图用fetchInBackground来拯救他们,这是个错误。我将syncUser()更改为ParseUser.getCurrentUser().saveInBackground(),一切正常。我找到了解决方案。将新创建的会话添加到与的用户关系后
ParseRelation<ParseSession> relation = ParseUser.getCurrentUser().getRelation("sessions");
relation.add(session);
parserelationrelation=ParseUser.getCurrentUser().getRelation(“会话”);
关系。添加(会话);
我试图用fetchInBackground来拯救他们,这是个错误。我将syncUser()改为ParseUser.getCurrentUser().saveInBackground(),一切正常
ParseRelation<ParseSession> relation = ParseUser.getCurrentUser().getRelation("sessions");
relation.add(session);