无法保存未经过身份验证的ParseUser,更新与ParseUser关系的对象

时间:2015-10-15 08:52:25

标签: android parse-platform

我正在使用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());

1 个答案:

答案 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);
    }

我可以解决这个问题,希望它能有所帮助。