我第一次使用解析作为后端。在我的业务中,用户必须在注册页面中选择2个角色:“Role1”和“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);
}});
});
正如您在此代码中看到的,我需要使用查询通过其名称获取用户角色。该角色应该存储在用户对象中,这不是此代码中的情况。
问题:如何访问云代码中的角色字段?
谢谢。
答案 0 :(得分:0)
要获取role
字段,我们必须使用user.get('role')
而不是user.role
注意:如果您使用的是1.6.0 sdk代码将失败,请考虑将“.parse.project”文件中的值更改为1.5.0,等待修复此错误。