我想更新User类中的字段而不以用户身份登录。从在线阅读和其他回复中,人们说我应该使用' masterkey'这样做。这是我在主密钥中添加的云代码。代码已执行,但是当我转到数据浏览器时,totalScore和predictions值仍然相同,并且未更新为新值。
Parse.initialize("key", "key");
Parse.Cloud.define("userUpdate", function(request, response) {
Parse.Cloud.useMasterKey();
var publicReadACL = new Parse.ACL();
publicReadACL.setPublicWriteAccess(true);
request.object.setACL(publicReadACL);
var User = Parse.Object.extend("User");
var query = new Parse.Query(User);
query.equalTo("username", request.params.username);
query.find({
success: function(user) {
user.set("totalScore", request.params.totalS);
user.set("totalPredictions", request.params.totalG);
user.save()
},
error: function() {
response.error("f");
}
});
});
任何帮助都会受到大力赞赏。
答案 0 :(得分:1)
希望你现在已经明白了这一点,但是如果你还没有...我会首先说检查以确保你通过" totalScore"和#34; totalPredictions"作为数字。如果你把它们作为字符串传递并且Parse期望一个数字,它就不会更新。通常,我认为查询用户类的最佳做法如下:
var query = new Parse.Query(Parse.User);
query.get(user.objectId, {
success: function(userAgain) {
userAgain.set("totalScore", totalScore);
userAgain.save(null, {
error: function(userAgain, error) {
// This will error, since the Parse.User is not authenticated
}
});
}
});
当然,您仍然需要包含主密钥等...