手动重置密码解析服务器,服务器端

时间:2017-07-03 22:02:34

标签: javascript android parse-platform server

我想将电子邮件x@x.com的用户密码设置为""。但代码不起作用。 这是我的云代码:

  Parse.Cloud.define('testSetPasswordForUser', function(request, response) {
  Parse.Cloud.useMasterKey();

  var query = new Parse.Query(Parse.User);
 query.equalTo("email", "x@x.com");

  query.first({
  success: function(results) {
    results.setPassword("an");
    results.save();
  },
  error: function(error) {

  }
});



});

这是我的安卓代码:

     Map<String, String> parameters = new HashMap<String, String>();
                   ParseCloud.callFunctionInBackground("testSetPasswordForUser", parameters, new FunctionCallback<Map<String, Object>>() {
                            @Override
                            public void done(Map<String, Object> mapObject, ParseException e) {
                                if (e == null) {
//OK
                                }
                                else {
//WRONG
                                }
                            }
                        });

1 个答案:

答案 0 :(得分:1)

首先,如果没有匹配的电子邮件,您将会抛出错误,因为results将是未定义的。因此将处理程序包装在if( results )块中。

其次,您必须使用主密钥来更改密码。否则,任何人都可以更改任何其他人的密码。

results.save(null, {useMasterKey:true});

null是一个可选字典,您可以更新值.I.e。 results.save({key1:value1, key2:value2}, {useMasterKey:true});