ユーザーがデータを更新できるようにする次のコードがあります。
String username = "Any username that is currently already used by another user";
ParseUser currentUser = ParseUser.getCurrentUser();
if (currentUser != null) {
currentUser.setUsername(username);
currentUser.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
// All good!
} else {
// Error: Account already exists for this username.
Log.e("Error: ", e.getMessage());
}
}
}
});
ユーザーが他の誰かが既に使用しているユーザー名でユーザー名を更新しようとすると、エラーがスローされます。
このユーザー名のアカウントは既に存在します。
これはまさに私が望んでいることですが、ユーザーが戻ると(ユーザー名を利用可能なユーザー名に変更する別のリクエストを行わずに)、ParseUser.get("username")
すでに存在するために保存されなかった値が返されます(実際のその時点でサーバーに保存されている値)。
ParseUser currentUser = ParseUser.getCurrentUser();
currentUser.fetchInBackground(new GetCallback<ParseUser>() {
public void done(ParseUser user, ParseException exception) {
if (exception == null) {
// username now returns ("Any username that is currently already used by another user").
String username = user.get("username").toString().trim();
} else {
// Error
}
}
});
これまでのところ、問題を解決する唯一の方法は、アプリをアンインストール/再インストールすることです。何が原因ですか?そして、これを修正する良い方法はありますか?