如何使用JavaScript SDK在parse-platform中更新用户类?

时间:2015-08-24 11:06:08

标签: javascript parse-platform parse-server

我正在尝试更新存储在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中更新其他用户的信息?任何帮助将不胜感激。

1 个答案:

答案 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);
    }
});