我正在尝试更新存储在User类中的Parse中的其他用户信息。 最初我尝试了以下代码:
1
var user = Parse.User;
var query = new Parse.Query(user);
query.equalTo("name", userName); //to find specific user
query.first({
success: function(results) {
//update that user's details
results.set("name", newName);
results.save();
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
我收到了以下错误:
{code: 206, error: "Parse::UserCannotBeAlteredWithoutSessionError"}
2. 然后我使用了Parse.Cloud.useMasterKey(),因为我发现我们无法编辑其他用户的详细信息。但它也没有用。并且主密钥会覆盖所有安全性,因此使用此代码不是一个好主意。
3. 所以我尝试了以下代码:
var user = Parse.User;
var query = new Parse.Query(user);
query.equalTo("objectId", userName);
query.first({
success: function(results) {
results.set("name", newName);
results.save(null, { useMasterKey:true}).then(function(user) {console.log("updated!!!");}, function(error) {console.log(error); });
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
但我收到'401 Unauthorized'错误。
有谁知道如何在Parse中更新其他用户的信息?任何帮助将不胜感激。
答案 0 :(得分:0)
您应该在更新当前用户对象后调用fetch
函数。您可以按照以下示例进行操作:
var currentUser = Parse.User.current();
currentUser.set('name', 'New Name');
currentUser.save(null, {
success: function(user) {
currentUser.fetch();
},
error: function(user, error) {
alert('Failed to update object, with error code: ' + error.message);
}
});