【问题标题】:Cannot save a ParseUser that is not authenticated, updating an object with a relation with a ParseUser无法保存未经身份验证的 ParseUser,更新与 ParseUser 有关系的对象
【发布时间】:2015-10-15 08:52:24
【问题描述】:

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

P.D.需求中的所有ACL都是public的,写的和读的。

        // 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());

【问题讨论】:

  • 你写的邮政编码

标签: android parse-platform


【解决方案1】:

我找到了解决办法,

发生了什么:3 个表,ProjectUserRequirements,其中 Requirement 有一个指向项目的指针,而项目有另一个指向名为 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);
    }

感谢这个,我可以修复它,我希望它会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 2018-08-03
    • 2020-08-02
    • 1970-01-01
    • 2019-01-29
    • 2017-03-25
    • 1970-01-01
    相关资源
    最近更新 更多