2014-07-10 44 views
1

我想为给定的当前用户密钥增加一个计数器。当前用户的增量计数器

我使用incrementKey method,但是,下面的代码是不工作*:

[currentUser incrementKey:@"likes" byAmount:[NSNumber numberWithInt:1]]; 
    [currentUser saveInBackground]; 
  • 它不会引发错误,但它并没有任何更新数据库。
+0

只是可以肯定,你是如何分配currentUser变量? – Fosco

回答

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 
}]; 

老实说,我建议不要使用出于安全原因,上面的方法,尤其是在用户表。相反,你可以尝试创建一个自定义功能的云代码方面,采用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); 
}); 

希望它可以帮助