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 console の [Auth] で有効にしてください。 |
FIRAuthErrorCodeUserDisabled |
ユーザーのアカウントが無効になっていることを示します。 |
FIRAuthErrorCodeWrongPassword |
ユーザーが間違ったパスワードでログインしようとしたことを示します。 |
signInWithCredential:completion:
コード |
意味 |
FIRAuthErrorCodeInvalidCredential |
提供された認証情報が無効であることを示します。このエラーは、認証情報の有効期限が切れていたり、形式が正しくない場合に発生することがあります。 |
FIRAuthErrorCodeOperationNotAllowed |
認証情報が表す ID プロバイダを使用するアカウントが有効になっていないことを示します。Firebase console の [Auth] で有効にしてください。 |
FIRAuthErrorCodeEmailAlreadyInUse |
認証情報が表すメール(Facebook アクセス トークンに含まれるメールなど)が既存のアカウントで既に使用されており、このログイン方法では認証できないことを示します。このユーザーのメールに対して fetchProvidersForEmail を呼び出し、返されるいずれかのログイン プロバイダを使用してログインするようユーザーに求めてください。このエラーは、Firebase console の [Authentication] 設定で [1 つのメールアドレスにつき 1 つのアカウント] が有効になっている場合にのみスローされます。 |
FIRAuthErrorCodeUserDisabled |
ユーザーのアカウントが無効になっていることを示します。 |
FIRAuthErrorCodeWrongPassword |
認証情報のタイプが EmailPasswordAuthCredential の場合に、ユーザーが間違ったパスワードでログインしようとしたことを示します。 |
signInAnonymouslyWithCompletion:
コード |
意味 |
FIRAuthErrorCodeOperationNotAllowed |
匿名アカウントが有効になっていないことを示します。Firebase console の [Auth] で有効にしてください。 |
signInWithCustomToken:completion:
コード |
意味 |
FIRAuthErrorCodeInvalidCustomToken |
カスタム トークンに検証エラーがあることを示します。 |
FIRAuthErrorCodeCustomTokenMismatch |
サービス アカウントと API キーが、異なるプロジェクトに属していることを示します。 |
createUserWithEmail:password:completion:
コード |
意味 |
FIRAuthErrorCodeInvalidEmail |
メールアドレスの形式が正しくないことを示します。 |
FIRAuthErrorCodeEmailAlreadyInUse |
登録に使用されたメールが既に存在することを示します。fetchProvidersForEmail を呼び出してそのユーザーが使用したログイン方法を確認し、そのいずれかの方法を使用してログインするようユーザーに求めてください。 |
FIRAuthErrorCodeOperationNotAllowed |
メールとパスワードを使用するアカウントが有効になっていないことを示します。Firebase console の [Authentication] セクションで有効にしてください。 |
FIRAuthErrorCodeWeakPassword |
設定しようとしたパスワードが弱すぎると判断されたことを示します。NSError.userInfo 辞書の NSLocalizedFailureReasonErrorKey 項目に、ユーザーに表示できる詳細な説明が含まれています。 |
signOut:
コード |
意味 |
FIRAuthErrorCodeKeychainError |
キーチェーンへのアクセス時にエラーが発生したことを示します。NSError.userInfo 辞書の NSLocalizedFailureReasonErrorKey 項目と NSUnderlyingErrorKey 項目に、発生したエラーの詳細が含まれています。 |
FIRUser
FIRUser 操作に共通のエラー
コード |
意味 |
FIRAuthErrorCodeInvalidUserToken |
セッション情報が保持されている、ログイン済みユーザーのリフレッシュ トークンが無効であることを示します。ユーザーにこの端末で再度ログインするように求める必要があります。 |
FIRAuthErrorCodeUserDisabled |
ユーザーのアカウントが無効になっており、Firebase console の [ユーザー] パネル内で再度有効にされるまで使用できないことを示します。 |
reauthenticateWithCredential:completion:
コード |
意味 |
FIRAuthErrorCodeInvalidCredential |
提供された認証情報が無効であることを示します。このエラーは、認証情報の有効期限が切れていたり、形式が正しくない場合に発生することがあります。 |
FIRAuthErrorCodeWrongPassword |
認証情報のタイプが EmailPasswordAuthCredential の場合に、ユーザーが間違ったパスワードで再認証しようとしたことを示します。 |
FIRAuthErrorCodeUserMismatch |
現在ログインしているユーザーではないユーザーで再認証が試みられたことを示します。 |
FIRAuthErrorCodeOperationNotAllowed |
認証情報が表す ID プロバイダを使用するアカウントが有効になっていないことを示します。Firebase console の [Auth] で有効にしてください。 |
FIRAuthErrorCodeEmailAlreadyInUse |
認証情報が表すメール(Facebook アクセス トークンに含まれるメールなど)が既存のアカウントで既に使用されており、このログイン方法では再認証できないことを示します。このユーザーのメールに対して fetchProvidersForEmail を呼び出し、返されるいずれかのログイン プロバイダを使用してログインするようユーザーに求めてください。このエラーは、Firebase console の [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 console の [Auth] で有効にしてください。 |
このメソッドでは、FIRUser
の updateEmail:completion:
と updatePassword:completion:
に関連付けられているエラーコードが返されることもあります。
unlinkFromProvider:completion:
コード |
意味 |
FIRAuthErrorCodeNoSuchProvider |
アカウントにリンクされていないプロバイダのリンクを解除しようとしたことを示します。 |
FIRAuthErrorCodeRequiresRecentLogin |
メールの更新はセキュリティ上重要な操作で、ユーザーが最近ログインしている必要があります。このエラーは、ユーザーがログインした時期が古いことを示しています。解決するには、FIRUser で reauthenticateWithCredential:completion: を呼び出して、ユーザーを再認証してください。 |
sendEmailVerificationWithCompletion:
コード |
意味 |
FIRAuthErrorCodeUserNotFound |
ユーザー アカウントが見つからなかったことを示します。 |
deleteWithCompletion:
コード |
意味 |
FIRAuthErrorCodeRequiresRecentLogin |
メールの更新はセキュリティ上重要な操作で、ユーザーが最近ログインしている必要があります。このエラーは、ユーザーがログインした時期が古いことを示しています。解決するには、FIRUser で reauthenticateWithCredential:completion: を呼び出して、ユーザーを再認証してください。 |