解析,当对象是由另一个用户创建时,从iOS客户端更新PFObject?

时间:2014-10-07 06:25:26

标签: parse-platform

我无法从iOS客户端解析保存对象。

流速:

用户A保存PFObject表单iOS客户端,用户B检索PFObject并想要更新它, 当用户B尝试保存对PFObject所做的更改时,我收到此错误:

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

所以,据我所知,这是因为唯一对PFObject具有写入权限的用户是用户A,因为它是实际创建它的人。

问题是:

如何授予对首先创建的A相同PFObject的B写访问权?

可以从客户端完成吗?

如果没有,我可以写什么样的云功能来改变PFObject上的ACL,以便B可以更新PFObject?我可以在保存之前完成吗?

以下是代码:

PFQuery * photoQuery = [PFQuery queryWithClassName:@"UserPhoto"];
[photoQuery whereKey:@"username" equalTo:user.username];
[photoQuery whereKey:@"version" equalTo:version];
NSArray * photos = [photoQuery findObjects];

PFObject * photo = nil;
if([photos count]) {
    photo = [photos lastObject];
    NSNumber * previousVersion = [photo objectForKey:@"version"];
    [photo setObject:previousVersion?@(previousVersion.integerValue+1):@0 forKey:@"version"];
} else {
    photo = [PFObject objectWithClassName:@"UserPhoto"];
    [photo setObject:version forKey:@"version"];
}

[photo setObject:user.username forKeyedSubscript:@"username"];
[photo removeObjectForKey:@"userRelation"];

PFACL * postACL = [PFACL ACLWithUser:[PFUser currentUser]];
[postACL setPublicReadAccess:YES];
[postACL setPublicWriteAccess:YES];
photo.ACL = postACL;

NSError * error;
BOOL savedPhoto = [photo save:&error];

0 个答案:

没有答案