如何撤消ParseUser.setPassword()调用?

nat*_*rio 11 android parse-platform

我让用户更改他的凭据.他键入了新的用户名,电子邮件和密码,我想:

ParseUser user = ParseUser.getCurrentUser();
user.setUsername("MY NEW NAME");
user.setEmail(email);
user.setPassword("MY NEW PW");
user.saveInBackground(...);
Run Code Online (Sandbox Code Playgroud)

所以呢?所以这个save()调用可能会因为很多原因而失败(例如:其他人已经使用了用户名).我可以说,在这种情况下,上述字段没有得到更新,这是公平的:我显示错误,用户知道一切都出错了.

如果您注意到事情变得复杂,即使在之后ParseException,user上面会保留其脏字段,这些字段无法保存到服务器.即

//saveInBackground fails
//...
user.getUsername().equals("MY NEW NAME") // true!
Run Code Online (Sandbox Code Playgroud)

问题

现在,我可以通过调用将这些字段恢复为正确的值user.fetch(),但这不适用于该password字段.

这是特别不需要的,因为任何未来的呼叫save()或此类呼叫(可能不会因为可能是完全不同的呼叫而失败)也会更新密码!即

//later
ParseUser user = ParseUser.getCurrentUser();
user.put("stuff");
user.save();
Run Code Online (Sandbox Code Playgroud)

这不仅会放"东西",还会将密码更改为"我的新PW" ..用户不知道.

有没有办法重置本地password字段,除此之外fetch()不起作用?我知道我可以通过三种不同的查询来保存用户名,电子邮件和密码,但这不是我案例的可能解决方案.

nat*_*rio 1

查看我在变更日志中读到的最新版本:

\n\n
\n

V1.10.2 \xe2\x80\x94 2015 年 9 月 15 日

\n\n

新增内容:添加了 ParseObject.revert() 和 revert(key) 以允许恢复\n 脏更改

\n
\n\n

看起来可能就是这样了。这绝对是需要的。

\n