Authentication メソッドに対する完了コールバックが nil 以外の NSError
引数を受信した場合は、エラーが発生しています。本番環境のコードの適切なエラー処理ロジックにディスパッチするには、次に示す、一般的なエラーとメソッド別のエラーに対するエラーコードをご確認ください。
エラーの中には、特定のユーザー操作によって解決できるものがあります。たとえば、FIRAuthErrorCodeUserTokenExpired
はユーザーが再度ログインすることで解決でき、FIRAuthErrorCodeWrongPassword
はユーザーに正しいパスワードを入力してもらうことで解決できます。
FIRAuthErrorCodeNetworkError
と FIRAuthErrorCodeTooManyRequests
の場合を除き、失敗したオペレーションを同じ引数で再試行しても成功することはありません。サーバー側でオペレーションが行われたかどうかは仮定しないでください。
エラーを調べたり、ログに記録したりする場合は、userInfo
辞書をご確認ください。FIRAuthErrorNameKey
には、エラーを識別するために使用できる、プラットフォーム間で共通のエラー名の文字列が含まれています。NSLocalizedDescriptionKey
にはエラーの説明が含まれます。この説明はデベロッパー向けのもので、ユーザー向けではありません。NSUnderlyingErrorKey
には、発生したエラーの原因となったエラーが含まれます(原因となったエラーが存在する場合)。
上記の主要フィールドに加えて、userInfo
辞書には、エラーの診断に役立つ他のフィールドが含まれる場合もあります。
すべての API メソッドに共通のエラーコード
コード |
意味 |
FIRAuthErrorCodeNetworkError |
オペレーション中にネットワーク エラーが発生したことを示します。 |
FIRAuthErrorCodeUserNotFound |
ユーザー アカウントが見つからなかったことを示します。このエラーは、ユーザー アカウントが削除されている場合に発生することがあります。 |
FIRAuthErrorCodeUserTokenExpired |
現在ログインしているユーザーのトークンが期限切れになったことを示します。たとえば、ユーザーが別の端末でアカウントのパスワードを変更した場合などです。ユーザーにこの端末で再度ログインするように求める必要があります。 |
FIRAuthErrorCodeTooManyRequests |
呼び出し元の端末から Firebase Authentication サーバーに異常な数のリクエストが行われた後で、リクエストがブロックされたことを示します。しばらくしてからもう一度お試しください。 |
FIRAuthErrorCodeInvalidAPIKey |
アプリに無効な API キーが設定されていることを示します。 |
FIRAuthErrorCodeAppNotAuthorized |
アプリが、提供された API キーによる Firebase Authentication の使用を承認されていないことを示します。Google API Console にアクセスし、[認証情報] タブで、使用している API キーのホワイトリストにアプリのバンドル ID が登録されていることをご確認ください。 |
FIRAuthErrorCodeKeychainError |
キーチェーンへのアクセス時にエラーが発生したことを示します。NSError.userInfo 辞書の NSLocalizedFailureReasonErrorKey フィールドと NSUnderlyingErrorKey フィールドに、発生したエラーの詳細が含まれています。 |
FIRAuthErrorCodeInternalError |
内部エラーが発生したことを示します。NSError オブジェクト全体を使用してエラーを報告してください。 |
メソッド別のエラーコード
FIRAuth
fetchProvidersForEmail:completion:
コード |
意味 |
FIRAuthErrorCodeInvalidEmail |
メールアドレスの形式が正しくないことを示します。 |
signInWithEmail:password:completion:
コード |
意味 |
FIRAuthErrorCodeOperationNotAllowed |
メールアドレスとパスワードを使用するアカウントが有効になっていないことを示します。Firebase コンソールの [Authentication] で有効にしてください。 |
FIRAuthErrorCodeInvalidEmail |
メールアドレスの形式が正しくないことを示します。 |
FIRAuthErrorCodeUserDisabled |
ユーザーのアカウントが無効になっていることを示します。 |
FIRAuthErrorCodeWrongPassword |
ユーザーが間違ったパスワードでログインしようとしたことを示します。 |
signInWithCredential:completion:
コード |
意味 |
FIRAuthErrorCodeInvalidCredential |
提供された認証情報が無効であることを示します。このエラーは、認証情報の有効期限が切れていたり、形式が正しくない場合に発生することがあります。 |
FIRAuthErrorCodeInvalidEmail |
認証情報のタイプが EmailPasswordAuthCredential の場合に、メールアドレスの形式が正しくないことを示します。 |
FIRAuthErrorCodeOperationNotAllowed |
認証情報が表す ID プロバイダを使用するアカウントが有効になっていないことを示します。Firebase コンソールの [Authentication] で有効にしてください。 |
FIRAuthErrorCodeEmailAlreadyInUse |
認証情報が表すメールアドレス(Facebook アクセス トークンに含まれるメールアドレスなど)が既存のアカウントですでに使用されており、このログイン方法では認証できないことを示します。このユーザーのメールアドレスに対して fetchProvidersForEmail を呼び出し、返されるいずれかのログイン プロバイダを使用してログインするようユーザーに求めてください。このエラーは、Firebase コンソールの [Authentication] 設定で [1 つのメールアドレスにつき 1 つのアカウント] が有効になっている場合にのみスローされます。 |
FIRAuthErrorCodeUserDisabled |
ユーザーのアカウントが無効になっていることを示します。 |
FIRAuthErrorCodeWrongPassword |
認証情報のタイプが EmailPasswordAuthCredential の場合に、ユーザーが間違ったパスワードでログインしようとしたことを示します。 |
signInAnonymouslyWithCompletion:
コード |
意味 |
FIRAuthErrorCodeOperationNotAllowed |
匿名アカウントが有効になっていないことを示します。Firebase コンソールの [Authentication] で有効にしてください。 |
signInWithCustomToken:completion:
コード |
意味 |
FIRAuthErrorCodeInvalidCustomToken |
カスタム トークンに検証エラーがあることを示します。 |
FIRAuthErrorCodeCustomTokenMismatch |
サービス アカウントと API キーが、異なるプロジェクトに属していることを示します。 |
createUserWithEmail:password:completion:
コード |
意味 |
FIRAuthErrorCodeInvalidEmail |
メールアドレスの形式が正しくないことを示します。 |
FIRAuthErrorCodeEmailAlreadyInUse |
登録に使用されたメールアドレスがすでに存在することを示します。fetchProvidersForEmail を呼び出してそのユーザーが使用したログイン方法を確認し、そのいずれかの方法を使用してログインするようユーザーに求めてください。 |
FIRAuthErrorCodeOperationNotAllowed |
メールアドレスとパスワードを使用するアカウントが有効になっていないことを示します。Firebase コンソールの [Authentication] で有効にしてください。 |
FIRAuthErrorCodeWeakPassword |
設定しようとしたパスワードが弱すぎると判断されたことを示します。NSError.userInfo 辞書オブジェクトの NSLocalizedFailureReasonErrorKey フィールドに、ユーザーに表示できる詳細な説明が含まれています。 |
signOut:
コード |
意味 |
FIRAuthErrorCodeKeychainError |
キーチェーンへのアクセス時にエラーが発生したことを示します。NSError.userInfo 辞書の NSLocalizedFailureReasonErrorKey フィールドと NSUnderlyingErrorKey フィールドに、発生したエラーの詳細が含まれています。 |
FIRUser
FIRUser オペレーションに共通のエラー
コード |
意味 |
FIRAuthErrorCodeInvalidUserToken |
セッション情報が保持されている、ログイン済みユーザーの更新トークンが無効であることを示します。ユーザーにこの端末で再度ログインするように求める必要があります。 |
FIRAuthErrorCodeUserDisabled |
ユーザーのアカウントが無効になっており、Firebase コンソールの [ユーザー] パネル内で再度有効にされるまで使用できないことを示します。 |
reauthenticateWithCredential:completion:
コード |
意味 |
FIRAuthErrorCodeInvalidCredential |
提供された認証情報が無効であることを示します。このエラーは、認証情報の有効期限が切れていたり、形式が正しくない場合に発生することがあります。 |
FIRAuthErrorCodeInvalidEmail |
認証情報のタイプが EmailPasswordAuthCredential の場合に、メールアドレスの形式が正しくないことを示します。 |
FIRAuthErrorCodeWrongPassword |
認証情報のタイプが EmailPasswordAuthCredential の場合に、ユーザーが間違ったパスワードで再認証しようとしたことを示します。 |
FIRAuthErrorCodeUserMismatch |
現在ログインしているユーザーではないユーザーで再認証が試みられたことを示します。 |
FIRAuthErrorCodeOperationNotAllowed |
認証情報が表す ID プロバイダを使用するアカウントが有効になっていないことを示します。Firebase コンソールの [Authentication] で有効にしてください。 |
FIRAuthErrorCodeEmailAlreadyInUse |
認証情報が表すメール(Facebook アクセス トークンに含まれるメールなど)が既存のアカウントですでに使用されており、このログイン方法では再認証できないことを示します。このユーザーのメールアドレスに対して fetchProvidersForEmail を呼び出し、返されるいずれかのログイン プロバイダを使用してログインするようユーザーに求めてください。このエラーは、Firebase コンソールの [Authentication] 設定で [1 つのメールアドレスにつき 1 つのアカウント] が有効になっている場合にのみスローされます。 |
FIRAuthErrorCodeUserDisabled |
ユーザーのアカウントが無効になっていることを示します。 |
updateEmail:completion:
コード |
意味 |
FIRAuthErrorCodeEmailAlreadyInUse |
メールアドレスが別のアカウントですでに使用されていることを示します。 |
FIRAuthErrorCodeInvalidEmail |
メールアドレスの形式が正しくないことを示します。 |
FIRAuthErrorCodeRequiresRecentLogin |
ユーザーのメールアドレスの更新はセキュリティ上重要なオペレーションで、ユーザーが最近ログインしている必要があります。このエラーは、ユーザーがログインした時期が古いことを示しています。解決するには、FIRUser で reauthenticateWithCredential:completion: を呼び出して、ユーザーを再認証してください。 |
updatePassword:completion:
コード |
意味 |
FIRAuthErrorCodeOperationNotAllowed |
指定された ID プロバイダによるログインを管理者が無効にしたことを示します。 |
FIRAuthErrorCodeRequiresRecentLogin |
ユーザーのパスワードの更新はセキュリティ上重要なオペレーションで、ユーザーが最近ログインしている必要があります。このエラーは、ユーザーがログインした時期が古いことを示しています。解決するには、FIRUser で reauthenticateWithCredential:completion: を呼び出して、ユーザーを再認証してください。 |
FIRAuthErrorCodeWeakPassword |
設定しようとしたパスワードが弱すぎると判断されたことを示します。NSError.userInfo 辞書オブジェクトの NSLocalizedFailureReasonErrorKey フィールドに、ユーザーに表示できる詳細な説明が含まれています。 |
linkWithCredential:completion:
コード |
意味 |
FIRAuthErrorCodeProviderAlreadyLinked |
このアカウントにすでにリンクされているタイプのプロバイダをリンクしようとしたことを示します。 |
FIRAuthErrorCodeCredentialAlreadyInUse |
別の Firebase アカウントにすでにリンクされている認証情報にリンクしようとしたことを示します。 |
FIRAuthErrorCodeOperationNotAllowed |
認証情報が表す ID プロバイダを使用するアカウントが有効になっていないことを示します。Firebase コンソールの [Authentication] で有効にしてください。 |
このメソッドでは FIRUser
の updateEmail:completion:
と updatePassword:completion:
に関連付けられたエラーコードが返されることもあります。
unlinkFromProvider:completion:
コード |
意味 |
FIRAuthErrorCodeNoSuchProvider |
アカウントにリンクされていないプロバイダのリンクを解除しようとしたことを示します。 |
FIRAuthErrorCodeRequiresRecentLogin |
メールアドレスの更新はセキュリティ上重要なオペレーションで、ユーザーが最近ログインしている必要があります。このエラーは、ユーザーがログインした時期が古いことを示しています。解決するには、FIRUser で reauthenticateWithCredential:completion: を呼び出して、ユーザーを再認証してください。 |
sendEmailVerificationWithCompletion:
コード |
意味 |
FIRAuthErrorCodeUserNotFound |
ユーザー アカウントが見つからなかったことを示します。 |
deleteWithCompletion:
コード |
意味 |
FIRAuthErrorCodeRequiresRecentLogin |
ユーザー アカウントの削除はセキュリティ上重要なオペレーションで、ユーザーが最近ログインしている必要があります。このエラーは、ユーザーがログインした時期が古いことを示しています。解決するには、FIRUser で reauthenticateWithCredential:completion: を呼び出して、ユーザーを再認証してください。 |