将用户添加到 Cloud Code 中的解析角色

Adding Users to Parse Role in Cloud Code

我想将用户添加到我的 Parse.Role,但它不起作用。我看了很多例子,它们看起来都很简单,但我无法做到正确。这是我的代码:

Parse.Cloud.define("activateVendor", function(request, response){
     var query = new Parse.Query(Parse.Role);
     query.equalTo("name", "vendor");
     query.first ({
          success: function(role) {
               role.getUsers().add(request.params);//request.params is the parse object, should I be using request.params.id?
               role.save();
          },
          error: function(error) {
               throw "Got an error " + error.code + " : " + error.message;
          }
      })
});

用 2 个查询(角色、用户)做你想做的事...

  var qu = new Parse.Query(Parse.User);
  var qr = new Parse.Query(Parse.Role);
  Parse.Cloud.useMasterKey();
  qr.get(roleId, {
  success: function(role) {
      _role = role;
      qu.get(userId, {
        success: function(user) {
            _role.getACL().setRoleReadAccess(_role, true);
            _role.getUsers().add(user);
            _role.save();
            response.success(_role.toJSON());
        },
        error: function(object, error) {

        }
      });
  },
  error: function(object, error) {

  }
});

这取决于您希望将谁添加到角色中。发出云请求的用户可通过请求对象获得...

role.getUsers().add(request.user);

否则,您可以按照@RobertRowntree 的建议通过查询获取用户。 (不过,我建议用承诺来做)。