Javascript Parse.com安全角色未保存

Javascript Parse.com安全角色未保存,javascript,parse-platform,Javascript,Parse Platform,这是我第一次在解析中扮演安全角色,我相信我尝试做的事情相当简单。我想在使用CloudCode中的afterSave触发器注册新用户后创建一个新的安全角色 我已验证是否调用了此函数,并且角色名是否正确,但数据浏览器中未保存任何内容。我觉得我在这里错过了一些基本的东西,让它不起作用——有什么地方我需要打开吗 Parse.Cloud.afterSave(Parse.User, function(request, response) { var user = request.object; if (

这是我第一次在解析中扮演安全角色,我相信我尝试做的事情相当简单。我想在使用CloudCode中的afterSave触发器注册新用户后创建一个新的安全角色

我已验证是否调用了此函数,并且角色名是否正确,但数据浏览器中未保存任何内容。我觉得我在这里错过了一些基本的东西,让它不起作用——有什么地方我需要打开吗

Parse.Cloud.afterSave(Parse.User, function(request, response) {
 var user = request.object;
 if (user.existed()) { return; }

 var acl = new Parse.ACL();
 acl.setPublicReadAccess(false);
 acl.setPublicWriteAccess(false);

 var roleName = user.get("email");

 Parse.Cloud.useMasterKey();
 var companyRole = new Parse.Role(roleName, acl);
 console.log("Role = " + companyRole);
 companyRole.save();

}))

找到了解决办法。在解析中,角色的名称只能包含字母、数字和下划线。我试图将角色名称设置为电子邮件地址,其中包含“@”和“.”


在保存名称并完美地工作之前,我对这些字符进行了替换。我希望Parse在尝试使用无效字符保存时会抛出错误,但问题现在已经解决。

您是否检查了云日志,因为您应该会收到错误。由于未调用成功/错误,您的afterSave方法应引发错误。不过,客户端不会出现错误。正在调用Success,这不会抛出任何错误。我猜part在调用success之前不会验证字符串。从我的角色名中删除“.”是关键,现在有意义,但在不工作时很烦人,并且没有错误可处理。