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

Android 无法保存未经身份验证的ParseUser,正在更新与ParseUser有关系的对象,android,parse-platform,Android,Parse Platform,我在一个使用parse.com的Android项目中工作,我有一个表需求,它有一个名为“user_assigned”的列,这是与ParseUser的关系。此用户负责修改需求,即使他没有创建需求,但当此用户尝试更新需求值时,它返回“无法保存未经身份验证的用户” p.D.要求中的所有ACL都是公共的、写的和读的 // setting write permission ParseACL postACL = new ParseACL(ParseUser.getCurren

我在一个使用parse.com的Android项目中工作,我有一个表需求,它有一个名为“user_assigned”的列,这是与ParseUser的关系。此用户负责修改需求,即使他没有创建需求,但当此用户尝试更新需求值时,它返回“无法保存未经身份验证的用户”

p.D.要求中的所有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());
ParseRelation=requirement.getRelation(“用户分配”);
添加(requirement.getUserAssigned());
我找到了一个解决方案

发生的情况:3个表,项目用户需求,其中一个需求有一个指向项目的指针,而项目有另一个指向名为projectOwner的用户的指针。当与projectOwner不同的另一个用户读取与需求相关的projectOwner的一些值时,就会出现问题。如果新用户希望保存需求分析中的某些更改,则返回错误“无法保存未经身份验证的ParseUser”

为了解决这个问题,我只读取projectOwner的objectId,并在获得ParseUser调用的其余属性之后读取它

ParseUser.getQuery(); query.get(objectId)

换句话说,在我的类项目中,我有一个获取属性的方法。当我想要得到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);
    }

多亏了这一点,我才得以修复,希望它能有所帮助。

发布您编写的代码