如何使用 JavaScript SDK 更新解析平台中的用户类?

Posted

技术标签:

【中文标题】如何使用 JavaScript SDK 更新解析平台中的用户类?【英文标题】:How to update user class in parse-platform using JavaScript SDK? 【发布时间】:2015-08-24 11:06:08 【问题描述】:

我正在尝试更新存储在 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】:

您应该在更新当前用户对象后调用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);
    
);

【讨论】:

以上是关于如何使用 JavaScript SDK 更新解析平台中的用户类?的主要内容,如果未能解决你的问题,请参考以下文章

解析云代码迁移后如何更新到最新版本的 Parse-SDK-JS

如何在 iPhone SDK 中单击按钮时水平滚动 ScrollView

如何解决Eclipse更新ADT或者更新SDK的问题

浅析微信支付:公众平台卡券功能开通HTML5线上发券(JS-SDK接口)查看卡券详情

如何在 lambda 函数中包含 javascript aws-sdk?

如何在 JavaScript 中水平翻转图像