如何将我的所有用户添加到 Parse.com 中的角色?

How can I add all my users to a Role in Parse.com?

我有一个 class UserRatings 供用户对不同的地方进行评分。当前 class 有一个 Public 读写 ACL。我需要将我的所有用户添加到一个新角色,以便我可以将 public 读取和写入更改为我的新角色。如何将我的所有用户添加到此角色?另外,如何在注册新用户时更新角色?

我使用以下代码将所有现有用户添加到 class。

PFQuery *query = [PFUser query];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    allUsers=objects;
    NSLog(@"%@",allUsers);
}];


PFACL *roleACL = [PFACL ACL];
PFRole *role = [PFRole roleWithName:@"UserRatingsRole" acl:roleACL];
for (PFUser *user in allUsers) {
    [role.users addObject:user];
}
[role saveInBackground];

我没有给任何子角色。这是一个问题吗?当我检查我的解析角色时,我找不到我的角色中列出的任何用户。谁能帮帮我?

您需要在服务器上查询 Role 对象,然后按照已有的方式继续。

试试这个:

PFQuery *query = [PFUser query];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    allUsers=objects;
NSLog(@"%@",allUsers);
}];

PFQuery *queryRole = [PFRole query];
[queryRole whereKey:@"UserRatingsRole" equalTo:roleName];
[queryRole getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
    PFRole *role = (PFRole *)object;
    for (var i = 0; i < allUsers.length; i++) {
       role.getUsers().add(allUsers[i]);
    }
    role.save();
}];

您也可以在这里查看答案:https://parse.com/questions/add-users-to-role