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