我想为给定的currentUser密钥增加一个计数器。
我正在使用incrementKey method,但是,以下代码无效*:
[currentUser incrementKey:@"likes" byAmount:[NSNumber numberWithInt:1]];
[currentUser saveInBackground];
答案 0 :(得分:0)
假设当前用户是PFUser
实例,如果它不是当前记录的用户[PFUser currentUser]
,那么您可能应该在该用户行上拥有正确的ACL。
尝试为该用户设置读写的当前ACL字段,例如:
// set user acl
PFACL* userACL = [PFACL ACLWithUser:currentUser];
[userACL setPublicReadAccess:YES];
[userACL setPublicWriteAccess:YES];
[currentUser setACL:userACL];
[currentUser saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
// check if any save error occurs
}];
老实说,我建议不要出于安全原因使用上述方法,尤其是在User表上。相反,您可以尝试使用Parse.Cloud.useMasterKey()
创建自定义函数云代码端,从而使用户增加类似
.
..
...
Parse.Cloud.useMasterKey();
...
// retrieve the user with passed user object id from client
var userId =request.params.myUserId;
var user = new Parse.User();
user.set("objectId", userId);
user.fetch().then(function(concreteUser){
concreteUser.increment("likes", 1);
concreteUser.save().then(function(incrementedUser){
response.success();
},function(saveError){
response.error(saveError);
});
},function(error){
response.error(error);
});
希望有所帮助