新しいGoogleログインを使用して、アプリケーションのユーザーを認証しています。統合に関する公式文書に従っています。Googleでさまざまなエラーシナリオを処理できません。
https://developers.google.com/identity/sign-in/android/start
私は成功し、ユーザーにログインすることができるよWEB_CLIENT_IDとを生成しています。 しかし、私はエラーシナリオを処理する際の問題に直面しています。
私のアプリケーションには2つの主なエラーシナリオがあり、両方のエラーメッセージを表示したいと思います。
- アカウントピッカーダイアログが表示され、ユーザーが戻るボタンを押すと、「ユーザーは操作をキャンセルしました」と表示する必要があります。
- ユーザーアカウント]ダイアログピッカーからアカウントを選択し、彼はその間に彼のインターネット接続を失ったとき、私は、「ネットワークといくつかの問題があります」と表示する必要が
私が今直面しています問題それはGoogleの認証APIが私にステータスコード12501を返している両方の動作です。したがって、私はAPIによって返されたステータスに基づいて異なるエラーメッセージを与えることができません。これまでに試したコードはここにあります。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQ_CODE_GOOGLE) {
/* Google SignIn Callback result*/
if (data == null) {
return;
}
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result == null) {
return;
}
if (result.isSuccess()) {
// Signed in successfully, get idToken and userID.
} else {
// Login not successful.
Status status = result.getStatus();
if (status == null) {
return;
}
if (status.isCanceled()) {
//User canceled the operation
} else if (status.getStatusCode() == CommonStatusCodes.INVALID_ACCOUNT) {
//Invalid account
} else {
//Generic error
}
}
}
}
Googleのログインに失敗するたびに、常にelse条件になります。さまざまな種類のエラーに対して異なるエラーメッセージを与える方法を理解できませんか?