我正在使用parse.com在Android项目中工作,我有一个表需求,其中有一个名为" user_assigned"这是与ParseUser的关系。该用户负责修改要求,即使他没有创建要求,但当该用户尝试更新要求值时,它返回"无法保存未经过身份验证的ParseUser"
Pd积。需求中的所有ACL都是公共的,写入和读取的。
// setting write permission
ParseACL postACL = new ParseACL(ParseUser.getCurrentUser());
postACL.setPublicWriteAccess(true);
postACL.setPublicReadAccess(true);
requirement.setACL(postACL);
requirement.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
callback.onFinish((Exception) e, requirement);
}
我不想更改已分配的用户我想要更改其他字段,但我得到的方式和更改表中的关系是
ParseRelation<ParseUser> relation = requirement.getRelation("user_assigned");
relation.add(requirement.getUserAssigned());
答案 0 :(得分:2)
我找到了解决方案,
发生了什么:3个表,项目,用户和要求,其中需求具有指向项目的指针,而项目具有另一个指向名为projectOwner的用户的指针。当另一个与projectOwner不同的用户读取与Requirements相关的projectOwner的某些值时,就会出现问题。如果新用户想要在需求解析中保存一些更改,则返回错误&#34;无法保存未经过身份验证的ParseUser&#34;。
要修复它,我只读取了projectOwner的objectId,并在得到ParseUser调用的其余属性之后
ParseUser.getQuery(); query.get(OBJECTID)
换句话说,在我的类Project中,我有一个获取属性的方法。当我想获得projectUser(指针)时,我得到了这样的结果:
User uTemp = (User) this.getParseUser("owner");
if(uTemp != null){
// this.setOwner(uTemp.extractAttributes());
uTemp = uTemp.getObjectId();
uTemp = UserDAO.getUserByObjectId(uTemp.getObjectId());
this.setOwner(uTemp);
}
我可以解决这个问题,希望它能有所帮助。