我想将电子邮件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
}
}
});
答案 0 :(得分:1)
首先,如果没有匹配的电子邮件,您将会抛出错误,因为results
将是未定义的。因此将处理程序包装在if( results )
块中。
其次,您必须使用主密钥来更改密码。否则,任何人都可以更改任何其他人的密码。
results.save(null, {useMasterKey:true});
null是一个可选字典,您可以更新值.I.e。
results.save({key1:value1, key2:value2}, {useMasterKey:true});