我想允许用户更新他们的电子邮件,当他们正确输入所有内容但是当他们没有发生奇怪的事情时,它可以正常工作
因此,对于此示例(我正在测试的那个),当前用户电子邮件为email@gmail.com
,他们希望将其替换为h
作为其电子邮件。
这是更新用户电子邮件的代码
// get current user
currentUser = ParseUser.getCurrentUser();
// get user input (shortened to show result)
final String email = "h";
// reset user email
currentUser.setUsername(email);
currentUser.setEmail(email);
// save progress
currentUser.saveInBackground(new SaveCallback()
{
@Override
public void done(ParseException e)
{
if (null == e)
{
// success
// tell user of success
Toast.makeText(getActivity(), "new email is " + email,
Toast.LENGTH_SHORT).show();
// restart activity to update information
restartActivity();
}
else
{
// update failed
// look at the ParseException to see what happened.
errorMessageDialog("Oops!", e.getMessage());
}
}
});
所以显然会抛出一个解析异常,它将是一个有效的电子邮件地址,当我检查数据库时就是这种情况。任何行都没有更新任何内容;但是,如果我稍后检查当前的电子邮件,则会发生意外情况
// get current user
currentUser = ParseUser.getCurrentUser();
// get username
currentUser.getUsername();
// get email
currentUser.getEmail();
当我运行该代码时,它表示我的电子邮件和用户名为h
,但如果我检查数据库,它仍然是example@gmail.com
即使从数据库中抛出异常,解析仍然会更新它的本地缓存?我不知道问题是什么saveInBackground(new SaveCallback()
是错误的使用方法?