currentUser的递增计数器

时间:2014-07-10 14:41:59

标签: objective-c parse-platform

我想为给定的currentUser密钥增加一个计数器。

我正在使用incrementKey method,但是,以下代码无效*:

    [currentUser incrementKey:@"likes" byAmount:[NSNumber numberWithInt:1]];
    [currentUser saveInBackground];
  • 它不会引发错误,但也不会更新数据库。

1 个答案:

答案 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);
});

希望有所帮助