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

Parse platform 更改另一个PFuser对象中的数据,parse-platform,Parse Platform,在我的游戏中,一个用户可以对另一个用户造成伤害,并拿走他们的一些金币。gold变量存储在其他用户PFUser对象中。一个用户如何更改存储在其他用户PFUser对象中的黄金值?您可以从PFQuery使用。您不能保存或删除未经身份验证的PFUser。实现该功能的方法是为公共读/写用户变量设置一个单独的类 从解析文档中- 用户对象的安全性 默认情况下,PFUser类是安全的。PFUser can中存储的数据 只能由该用户修改。默认情况下,仍然可以读取数据 由任何客户提供。因此,一些PFUser对象经过

在我的游戏中,一个用户可以对另一个用户造成伤害,并拿走他们的一些金币。gold变量存储在其他用户PFUser对象中。一个用户如何更改存储在其他用户PFUser对象中的黄金值?

您可以从PFQuery使用。

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

从解析文档中-

用户对象的安全性

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

具体来说,您无法调用任何保存或删除操作 方法除非通过认证方法获得PFUser, 比如登录或者注册。这确保了只有用户可以更改其 拥有自己的数据


最好的解决方案是使用云代码来处理它。从客户端操作未经身份验证的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

    });
  });

你可以在这里的文档中读到:

我知道如何获取PFuser对象,但我不知道如何(或者如果可能的话)在不授予某种特殊访问权限的情况下从另一个PFuser对象更改数据,但我不知道这是如何做到的。你是否尝试过引用它的常规方法,即userObj[“gold”]?你找到问题的答案了吗?不完全是,我只是通过移除PFUser类以外的其他玩家可能需要交互的所有对象来避免这种情况。这就是我的想法,这也是我必须采取的路线。我想这是可以理解的,但仍然让人恼火。嗯,这可能是最好的,这样一来,玩家自己可以更改的对象只有在PFUser中。这是正确的答案。您甚至不能更改用户的属性,因为它不会保存更改。