解析:使用云代码将用户添加到角色

Parse: Add user to role using cloud code

本文关键字:用户 添加 角色 代码 解析      更新时间:2023-09-26

我第一次使用parse作为后端。在我的业务中,用户必须在注册页面的2个角色之间进行选择:"Role1"answers"Role2"。如果我理解文档,对"_Role"类的访问应该是只读的,所以当这个用户试图注册时,将用户添加到角色的最佳方法是通过云代码。

我的想法(不确定这是最佳实践)是首先为这个用户添加一列,称为"role",这样用户对象将看起来像这样:

{
    username: "John Doe",
    email: "john@doe.com",
    role: "Role1",
    createdAt : ...
    ...
}

,其次,使用云代码将该用户添加到角色"Role1"。

下面是云代码:

Parse.Cloud.afterSave(Parse.User, function(request, response) {
var user = request.user;
Parse.Cloud.useMasterKey();
var query = new Parse.Query(Parse.Role);
// user.role is undefined here !!!
query.equalTo("name", user.role);
query.first({ success: function(role) {
    role.relation("users").add(user);
    role.save();
} ,error: function(error){
    console.log('error');
    console.log(error); 
}});

});

正如您在这段代码中看到的那样,我需要使用查询通过其名称获取用户角色。角色应该存储在user对象中,但这段代码中的情况并非如此。

问题:如何访问云代码中的角色字段?

谢谢。

要获得role字段,我们必须使用user.get('role')而不是user.role

注意:如果您使用的是1.6.0 sdk,代码将失败,请考虑将值更改为1.5.0在你的"。parse. js"。项目"文件,等待这个错误被修复