2015-10-15 26 views
0

我在使用parse.com的Android項目中工作,並且我有一個表要求具有名爲「user_assigned」的列,這是一個關係給ParseUser。即使用戶未創建需求,該用戶也負責修改需求,但當該用戶嘗試更新需求值時,它將返回「不能保存未經認證的ParseUser」無法保存未經過身份驗證的ParseUser,使用與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()); 
+0

你寫的郵編 –

回答

2

我找到了解決辦法,

發生了什麼:3個表格,項目,用戶要求其中一個要求有一個指向項目的指針並且該項目有另一個指向名爲projectOwner的用戶的指針。當另一個與projectOwner不同的用戶閱讀與Requirements相關的projectOwner的某些值時,會發生問題。如果新用戶想要在Requirements parse中保存一些更改,則返回錯誤「無法保存未經身份驗證的ParseUser」。

爲了解決這個問題,我只能讀取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); 
    } 

我可以解決這個問題,我希望它能幫上忙。

相關問題