我一直在努力解决Parse Objects的问题,我不确定最佳实现是什么。
我有一个由另一个用户创建的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 :(得分: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");
}
});
});