2014-07-12 33 views
0

我一直在解决Parse对象的问题一段时间,我不确定最佳实现是什么。更改具有只读访问权限的PFObject ACL权限

我有一个由另一个用户创建的PFObject,一条消息,并且这个用户给了我读取权限,所以我可以阅读这条消息。我不想再看到此消息,但我不想删除它,因为这不是我的消息。

如果我调整ACL权限删除我的读访问

object.ACL setReadAccess:NO forUser:[PFUser currentUser]]; 

然后去拯救

object saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) 

我收到错误

Error: object not found for update (Code: 101, Version: 1.2.15) 

这显然是对象因为我只有读访问权限而不能写访问权限来更新对象。

我想可能有一个块消息对象为每个用户,但这感觉有点混乱。

任何人都可以想到一个更好的实现我的问题?

所有的想法都很棒,只是想让别人的iOS程序员跳出想法。

+0

有没有人有任何声音逻辑可以帮助我? – BrentonGray88

回答

1

我最终通过创建云代码来完成这项工作,我称之为从消息中删除用户。使用Parse.Cloud.UseMasterKey(),你可以做任何你想要的而没有权限。

Parse.Cloud.define("RemoveUserFromMessage", function(request, response) { 
Parse.Cloud.useMasterKey(); 

var query = new Parse.Query("Notes"); 
query.get(request.params.noteId, { 
     success: function(note) { 
     var noteACL = note.getACL(); 
     noteACL.setReadAccess(request.params.userId, false); 
     noteACL.setWriteAccess(request.params.userId, false); 
     note.setACL(noteACL); 
     note.save(); 

     response.success(); 
    }, 
    error: function() { 
     response.error("can’t find note"); 
    } 
}); 
});