0
我已经为beforeSave定义了一个Parse Cloud代码函数。解析Cloud代码beforeSave未在更新中运行
Parse.Cloud.beforeSave(Parse.User, function(request, response) {
Parse.Cloud.useMasterKey();
var publicACL = new Parse.ACL();
publicACL.setPublicReadAccess(true);
publicACL.setPublicWriteAccess(true);
request.object.setACL(publicACL);
response.success();
});
只要我保存一个新的Parse.User,这段代码就能正确运行。但是,当我尝试更新预先存在的Parse.User时,代码不会执行。有什么想法吗?以下是我用来更新我的用户的代码。
功能updateStudentTypes(ID,studentType,chkBox){
var query = new Parse.Query(Parse.User);
query.get(id, {
success: function(user) {
var typeList = user.get("studentType");
if(!chkBox.checked)
typeList = removeStudentType(typeList, studentType);
else
typeList = addStudentType(typeList, studentType);
user.set("studentType", typeList);
user.save(null, {
success: function(user) {
//alert('New object created with objectId: ' + user.id);
},
error: function(user, error) {
alert('Failed to update user: ' + error.message);
}
});
},
error: function(object, error) {
alert("Error querying user: " + error);
}
});
}
感谢您的评论。我试过了,但没有奏效。我的updateUsers方法通过Javascript运行在网页上,并且我得到一个未定义的不是函数错误。 – 2014-10-20 16:39:24
您需要使用云代码来查询用户。它不能在客户端完成 – hybrdthry911 2014-10-20 17:22:27
查询正在客户端工作,没有问题。我只是不能“更新”用户对象。你是否说我需要创建Cloud Code来“更新”用户对象,然后使用useMasterKey()函数? – 2014-10-20 19:07:21