我使用Android的parse.com后端。
我想注册一个新用户,然后在用户对象上设置一些数据字段。注册后设置数据字段非常重要,因为稍后我想使用beforeSave触发器启用自动ACL设置(当前没有激活触发器!)。
以下内容:注册成功完成,然后我设置数据字段并致电currentUser.save
。有时根本没有调用SaveCallback
(既没有错误,也没有成功)。但是,大多数情况下会调用它,但会删除用户的会话。我可以在数据浏览器中轻松检查。此外,如果我在此之后尝试执行任何操作,则会收到无效的会话异常。
以下是代码:
final User user = getData();
user.setEmail(emailStr);
user.setUsername(emailStr);
user.setPassword(password);
user.signUpInBackground(new SignUpCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
// this will be more complex data in the future
User.getCurrentUser().put("testInt", 5);
User.getCurrentUser().saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
// Hooray! But wait.. Oh no, the session is gone
} else {
// Oh no, something even worse happened
}
}
});
} else {
// signup failed
}
}
});
经过一天多的尝试和错误,我开始相信这实际上是Parse框架中的一个错误。 guide明确指出:
应始终使用signUpInBackground(或signUp)方法创建新的ParseUsers。可以通过调用save来完成对用户的后续更新。
有没有人有类似的行为?
答案 0 :(得分:0)
请勿在注册后调用save,将数据放在之前,注册将保存它们。此外,您必须在注册后登录用户。成功调用parseuser.logininbackground;这应该创建一个登录会话。 在登录之前,解析会在登录后保持匿名会话,从而创建用户会话。