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