更改另一个PFuser对象中的数据

时间:2013-05-02 18:35:22

标签: parse-platform

在我的游戏中,用户可能会对其他用户造成伤害,并获取部分金币。 gold变量存储在其他用户PFUser对象中。一个用户如何更改存储在其他用户PFUser对象中的黄金值?

3 个答案:

答案 0 :(得分:10)

您无法保存或删除未经过身份验证的PFUser。实现该功能的方法是为公共读/写用户变量设置单独的类

从解析文档 -

  

用户对象的安全性

     

默认情况下,PFUser类是安全的。存储在PFUser中的数据可以   只有该用户修改。默认情况下,仍可以读取数据   任何客户。因此,一些PFUser对象是经过身份验证的,可以   修改,而其他是只读的。

     

具体来说,您无法调用任何保存或删除   除非PFUser是使用经过验证的方法获得的,   像logIn或signUp。这确保了只有用户才能改变他们的   自己的数据。

答案 1 :(得分:4)

最好的解决方案是使用云代码处理它。从客户端操作未经过身份验证的PFUser对象会引发一些安全问题。有一个云功能,如:

  Parse.Cloud.define("stealGold", function(request, response) {
    var query = new Parse.Query(Parse.User);
    query.equalTo("objectId", request.params.targetObjectId);
    query.find({useMasterKey : true}).then(function(results) {
    // process the result of the query here
    // Save the user object

    });
  });

您可以在此处的文档中阅读相关内容:https://parse.com/docs/data#security-cloudcode

答案 2 :(得分:0)

您可以使用PFQuery中的getUserObjectWithId