2016-08-19 5 views
0

新しいGoogleログインを使用して、アプリケーションのユーザーを認証しています。統合に関する公式文書に従っています。Googleでさまざまなエラーシナリオを処理できません。

https://developers.google.com/identity/sign-in/android/start

私は成功し、ユーザーにログインすることができるよWEB_CLIENT_IDとを生成しています。 しかし、私はエラーシナリオを処理する際の問題に直面しています

私のアプリケーションには2つの主なエラーシナリオがあり、両方のエラーメッセージを表示したいと思います。

  1. アカウントピッカーダイアログが表示され、ユーザーが戻るボタンを押すと、「ユーザーは操作をキャンセルしました」と表示する必要があります。
  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条件になります。さまざまな種類のエラーに対して異なるエラーメッセージを与える方法を理解できませんか?

答えて

1

firebaseにdebug SHA-1キーを追加して修正しました。

関連する問題