アカウントを作成して認証すると、認証されていないアカウントを指しているAWS API関連クラスの1つにキャッシュされているものがあります。このエラーは、アカウントの作成後すぐにサインインしようとしている場合にのみ発生します。私のケースでは、ほとんどの場合、AWS Cognito APIコードはすべてマネージャ/ヘルパークラスに含まれています。私のクラスはAWSHelper
クラスです。この問題を回避するために、ユーザが確認された後のハンドラでは、単に自分のアクティビティでAWSHelperを再作成しました。私のMainActivityで
GenericHandler confirmationCallback = new GenericHandler() {
@Override
public void onSuccess() {
Log.w("DMJ", "user has been confirmed!");
if (!mainActivity.updateAWS()) {
Toast.makeText(activity, "Account created! Please sign into your account", Toast.LENGTH_LONG).show();
activity.changeFragment(new SignInFragment(), "SignInFragment");
} else {
Toast.makeText(activity, "Account created!", Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Exception exception) {
Log.w("DMJ", "confirmation got rekt m8");
exception.printStackTrace();
}
};
、私は次のような方法
public boolean updateAWS() {
awsHelper = new AWSHelper(this);
if (awsHelper.isSignedIn) {
changeFragment(new HomeScreenFragment(), "HomeScreenFragment");
return true;
}
return false;
}
も、私がチェックしていませんしているが、あなたは完全にonSuccess()
メソッドの後、ユーザーにサインインしよう場合、私は疑う、CognitoUser
意志更新せずにサインインできますCognitoInternalErrorException