在beforeSave钩子中,我希望在更新之前获得对象的状态。在这种情况下,它是阻止用户改变他们的选择,一旦他们做了。伪代码看起来类似于:
If (user has already voted) {
deny;
} else {
accept;
}到目前为止,我的代码是:
Parse.Cloud.beforeSave('votes', function(request, response) {
if (!request.object.isNew()) {
// This is an update. See if the user already voted
if (request.object.get('choice') !== null) {
response.error('Not allowed to change your choice once submitted');
}
}
response.success();
}但是request.object是已经应用了更新的对象的状态。
请注意,“选票”对象是单独创建的,因此这不允许插入,但不允许更新;我需要知道数据库中是否已经设置了给定的字段。
发布于 2014-11-04 02:42:14
您可以使用Parse DirtyKeys来识别哪个字段已经更改。
Parse.Cloud.beforeSave(Parse.User, function(request, response) {
for (dirtyKey in request.object.dirtyKeys()) {
if (dirtyKey === "yourfieldname") {
response.error("User is not allowed to modify " + dirtyKey);
return;
}
}
response.success();
});https://stackoverflow.com/questions/25082262
复制相似问题