3

私は現在、Firebaseを使用してログインに失敗した後でエラーコードを取得する方法を知りました。あなたは以下のリンクで見ることができることを、自分のレガシーコードから:Firebaseタスクからエラーコードを取得する方法<AuthResult>ログインに失敗しましたか?

https://www.firebase.com/docs/android/guide/user-auth.html#section-handling-errors

@Override 
public void onAuthenticationError(FirebaseError error) { 
    switch (error.getCode()) { 
     case FirebaseError.USER_DOES_NOT_EXIST: 
      // handle a non existing user 
      break; 
     case FirebaseError.INVALID_PASSWORD: 
      // handle an invalid password 
      break; 
     default: 
      // handle other errors 
      break; 
    } 
} 

あなたはFirebaseErrorは、その後、特にユーザーに異なるフィードバック誤差を生成するために分析することができonAuthenticationErrorを、提供されています。しかし、彼らが最近新しいAPIをリリースしたので、私はそれを使って作業を始めました。

@Override 
public void onComplete(@NonNull Task<AuthResult> task) { 
    //If authentication fails 
    if (!task.isSuccessful()) { 
     // Handle the specific individual errors such as incorrect passwords 
    } 
} 

は、残念ながら私はTask<AuthResult>オブジェクトから特定のエラーコードを集めることができていますかわからない:ここで私は今、利用しなければならないコードがあります。私は、とToastこのメッセージを集めることができると私は理解していますが、エラーが発生したことを説明するStringで作業するのではなく、適切なエラーコードでスイッチを実行したいと考えています。

+0

あなたがここに私の答えから参照できるためによくフォーマットされたメッセージを取得するために使用することが、私はそれが役に立つのhttpになると思う:// stackoverflowの。 com/a/37860491/5303797 –

答えて

1

私はこれと少し苦労しましたが、答えが見つかりました。それを試してみる:

@Override 
public void onComplete(@NonNull Task<AuthResult> task) { 
    if (task.isSuccessful()) { 
     Toast.makeText(activity, "Authentication completed.", 
     Toast.LENGTH_SHORT).show(); 

    } else { 
     Toast.makeText(activity, "Authentication failed:" +  
     task.getException(), Toast.LENGTH_SHORT).show(); 
    } 

私が使用したのだ例外を取得する:task.getException()を。

幸運より良い

0

task.getException().getMessage() 

はユーザー

関連する問題