【发布时间】:2014-11-27 21:03:27
【问题描述】:
这是我尝试使用的 Parse javascript 云代码。创建新的 _User 后,我想将它们添加到我的“客户”角色中。
Parse.Cloud.afterSave(Parse.User, function(request) {
Parse.Cloud.useMasterKey();
query = new Parse.Query(Parse.Role);
query.equalTo("name", "Client");
query.first ({
success: function(role) {
role.getUsers().add(request.user);
role.save();
},
error: function(error) {
throw "Got an error " + error.code + " : " + error.message;
}
});
});
这是直接从 Parse.com 的角色示例中获取代码。当保存新的_User 时,代码运行愉快,返回Result: Success,但是当我在数据浏览器中检查与该角色相关的“用户”时,什么都没有发生。
根据 Parse.com 旧论坛上的示例,我还尝试将 role.getUsers().add(request.user); 替换为 role.relation("users").add(request.user);,但没有区别。这似乎应该是非常直接的,所以我不确定我做错了什么。
(我已经手动使用 REST API,使用 curl,将 _Users 添加到客户端角色,这确实有效,所以我知道它应该有效。)
【问题讨论】:
-
你能检查一下 request.user 是一个有效的 Parse.User 对象并且角色确实存在吗?如果角色确实存在,它应该与
role.getUsers().add(Parse.User.current());一起使用 -
request.user 是有效用户。也尝试过您的替代方法,现在在这两种情况下我都得到了响应 No Message provided
-
作为参考,这对我有帮助 parse.com/questions/cloudcode-adding-user-to-role-on-beforesave 我在一个函数中有多个操作,但无法让它工作。问题是 response.success 在函数的其他地方被调用,所以我的角色设置没有时间完成。浪费了 3 个小时......该死的 javascript !!
标签: javascript parse-platform parse-cloud-code parse-javascript-sdk