【发布时间】:2015-05-29 20:12:55
【问题描述】:
我使用适用于 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)方法创建新的 ParseUser。可以通过调用 save 来完成对用户的后续更新。
有人有类似的行为吗?
【问题讨论】:
标签: android session parse-platform