2015-10-08 27 views
0

由于某些原因,云代码并未更新当前用户的用户名,即使它正在更新电子邮件字段。我正在使用主密钥,虽然一切都成功,但用户名不会更新(即使在数据浏览器上)。云代码无法正确更新用户的用户名

这里是我的代码:

 //Get Current User 
     var user = Parse.User.current(); 

     //Update username 
     user.set("email", request.params.email); 
     user.set("username", request.params.username); 
     user.save(null, { 

         //Success 
         success: function(user) { 

         //Done 
         response.success("Username saved! "); 
         }, 

         //Error 
         error: function(user, error) { 

         // Execute any logic that should take place if the save fails. 
         response.error("Aww man. Something went wrong. Please try again. "); 
         } 

     }); 

我做了肯定的参数传递正确的,并且没有对我的iOS应用程序的名称等错误。

+2

我得到登录的用户在request中使用request.user在云中发出请求。 – danh

+0

您在此代码中未使用主密钥明确显示您的自我。我假设它是因为一个错字? –

+0

@VarunAgarwal不应该需要主密钥,因为请求用户只修改他们自己的数据权限?我相信只有当您试图修改其他人的数据时才需要主密钥 – Russell

回答

1

我的猜测是,获取主叫用户存在问题。

使用request.user获取主叫用户并尝试以下操作。

// Get the requesting user 
var user = request.user; 

if (user) { 
    user.set("email", request.params.email); 
    user.set("username", request.params.username); 
    user.save(null, { 
     success: function(user) { 
      response.success("Username saved! "); 
     }, 
     error: function(error) { 
      alert("Error: " + error.code + " " + error.message); 
     } 
    }); 
} else { 
    response.error("Aww man. Something went wrong. Please try again. "); 
} 
+0

将用户从'Parse.User.current();'设置为'request.user;'的方式似乎解决了这个问题。这很奇怪,因为文档使用了两个。谢谢罗素。 – KingPolygon