Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

FirebaseAppleプラットフォームの認証エラーを処理する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

認証メソッドの完了コールバックがnilではないNSError引数を受け取った場合、エラーが発生しています。本番コードの適切なエラー処理ロジックにディスパッチするには、以下にリストされている一般的なエラーおよびメソッド固有のエラーに対してエラーコードを確認します。

一部のエラーは、特定のユーザーアクションによって解決できます。たとえば、 FIRAuthErrorCodeUserTokenExpiredは、ユーザーに再度サインインすることで解決でき、 FIRAuthErrorCodeWrongPasswordは、ユーザーに正しいパスワードの入力を求めることで解決できます。

FIRAuthErrorCodeNetworkErrorまたはFIRAuthErrorCodeTooManyRequestsの場合を除いて、同じ引数で失敗した操作を再試行しても成功することはありません。サーバー側で操作が有効になっているかどうかは想定しないでください。

エラーを調査またはログに記録するときは、 userInfoディクショナリを確認してください。 FIRAuthErrorNameKeyには、エラーの識別に使用できるクロスプラットフォームのエラー名文字列が含まれています。 NSLocalizedDescriptionKeyには、エラーの説明が含まれています。この説明は、ユーザーではなく開発者を対象としています。 NSUnderlyingErrorKeyには、根本的なエラーが存在する場合、問題のエラーの原因となった根本的なエラーが含まれています。

上記のメインフィールドに加えて、 userInfoディクショナリには、エラーの診断に役立つ可能性のある他のフィールドがあります。

すべてのAPIメソッドに共通のエラーコード

コード意味
FIRAuthErrorCodeNetworkError操作中にネットワークエラーが発生したことを示します。
FIRAuthErrorCodeUserNotFoundユーザーアカウントが見つからなかったことを示します。これは、ユーザーアカウントが削除された場合に発生する可能性があります。
FIRAuthErrorCodeUserTokenExpired現在のユーザーのトークンの有効期限が切れていることを示します。たとえば、ユーザーが別のデバイスのアカウントパスワードを変更した可能性があります。このデバイスに再度サインインするようにユーザーに促す必要があります。
FIRAuthErrorCodeTooManyRequests発信者のデバイスからFirebaseAuthenticationサーバーに対して異常な数のリクエストが行われた後、リクエストがブロックされたことを示します。しばらくしてから再試行してください。
FIRAuthErrorCodeInvalidAPIKeyアプリケーションが無効なAPIキーで構成されていることを示します。
FIRAuthErrorCodeAppNotAuthorizedアプリが提供されたAPIキーでFirebase認証を使用することを許可されていないことを示します。 Google APIコンソールに移動し、[認証情報]タブで、使用しているAPIキーにアプリケーションのバンドルIDがホワイトリストに登録されていることを確認します。
FIRAuthErrorCodeKeychainErrorキーチェーンへのアクセス中にエラーが発生したことを示します。 NSLocalizedFailureReasonErrorKeyディクショナリのNSError.userInfoフィールドとNSUnderlyingErrorKeyフィールドには、発生したエラーに関する詳細情報が含まれます。
FIRAuthErrorCodeInternalError内部エラーが発生したことを示します。 NSErrorオブジェクト全体でエラーを報告してください。

メソッド固有のエラーコード

FIRAuth

fetchProvidersForEmail:completion:

コード意味
FIRAuthErrorCodeInvalidEmailメールアドレスの形式が正しくないことを示します。

signInWithEmail:password:completion:

コード意味
FIRAuthErrorCodeOperationNotAllowed電子メールとパスワードのアカウントが有効になっていないことを示します。 Firebaseコンソールの[認証]セクションで有効にします。
FIRAuthErrorCodeInvalidEmailメールアドレスの形式が正しくないことを示します。
FIRAuthErrorCodeUserDisabledユーザーのアカウントが無効になっていることを示します。
FIRAuthErrorCodeWrongPasswordユーザーが間違ったパスワードでサインインしようとしたことを示します。

signInWithCredential:completion:

コード意味
FIRAuthErrorCodeInvalidCredential指定されたクレデンシャルが無効であることを示します。これは、有効期限が切れているか、形式が正しくない場合に発生する可能性があります。
FIRAuthErrorCodeInvalidEmail資格情報のタイプがEmailPasswordAuthCredentialの場合、電子メールアドレスの形式が正しくないことを示します。
FIRAuthErrorCodeOperationNotAllowedクレデンシャルで表されるIDプロバイダーのアカウントが有効になっていないことを示します。 Firebaseコンソールの[認証]セクションで有効にします。
FIRAuthErrorCodeEmailAlreadyInUseクレデンシャルによってアサートされた電子メール(Facebookアクセストークン内の電子メールなど)が既存のアカウントですでに使用されており、このサインイン方法では認証できないことを示します。このユーザーの電子メールに対してfetchProvidersForEmailを呼び出してから、返されたサインインプロバイダーのいずれかを使用してサインインするようにユーザーに促します。このエラーは、 Firebaseコンソールの[認証設定]で[メールアドレスごとに1つのアカウント]設定が有効になっている場合にのみスローされます。
FIRAuthErrorCodeUserDisabledユーザーのアカウントが無効になっていることを示します。
FIRAuthErrorCodeWrongPassword資格情報のタイプがEmailPasswordAuthCredentialの場合、ユーザーが間違ったパスワードでサインインしようとしたことを示します。

signInAnonymouslyWithCompletion:

コード意味
FIRAuthErrorCodeOperationNotAllowed匿名アカウントが有効になっていないことを示します。 Firebaseコンソールの[認証]セクションで有効にします。

signInWithCustomToken:completion:

コード意味
FIRAuthErrorCodeInvalidCustomTokenカスタムトークンの検証エラーを示します。
FIRAuthErrorCodeCustomTokenMismatchサービスアカウントとAPIキーが異なるプロジェクトに属していることを示します。

createUserWithEmail:password:completion:

コード意味
FIRAuthErrorCodeInvalidEmailメールアドレスの形式が正しくないことを示します。
FIRAuthErrorCodeEmailAlreadyInUseサインアップの試行に使用された電子メールがすでに存在することを示します。 fetchProvidersForEmailを呼び出して、そのようなユーザーが使用したサインインメカニズムを確認し、それらのいずれかでサインインするようにユーザーに促します。
FIRAuthErrorCodeOperationNotAllowed電子メールとパスワードのアカウントが有効になっていないことを示します。 Firebaseコンソールの[認証]セクションで有効にします。
FIRAuthErrorCodeWeakPassword弱すぎると見なされるパスワードを設定しようとしたことを示します。 NSError.userInfoディクショナリオブジェクトのNSLocalizedFailureReasonErrorKeyフィールドには、ユーザーに表示できるより詳細な説明が含まれます。

サインアウト:

コード意味
FIRAuthErrorCodeKeychainErrorキーチェーンへのアクセス中にエラーが発生したことを示します。 NSLocalizedFailureReasonErrorKeyディクショナリのNSError.userInfoフィールドとNSUnderlyingErrorKeyフィールドには、発生したエラーに関する詳細情報が含まれます。

FIRUser

FIRUser操作の一般的なエラー

コード意味
FIRAuthErrorCodeInvalidUserTokenセッション情報を保持するサインインしたユーザーの更新トークンが無効であることを示します。このデバイスに再度サインインするようにユーザーに促す必要があります。
FIRAuthErrorCodeUserDisabledユーザーのアカウントが無効になっており、Firebaseコンソールの[ユーザー]パネルから再度有効にするまで使用できないことを示します。

reauthenticateWithCredential:completion:

コード意味
FIRAuthErrorCodeInvalidCredential指定されたクレデンシャルが無効であることを示します。これは、有効期限が切れているか、形式が正しくない場合に発生する可能性があります。
FIRAuthErrorCodeInvalidEmail資格情報のタイプがEmailPasswordAuthCredentialの場合、電子メールアドレスの形式が正しくないことを示します。
FIRAuthErrorCodeWrongPasswordクレデンシャルのタイプがEmailPasswordAuthCredentialの場合、ユーザーが誤ったパスワードで再認証を試みたことを示します。
FIRAuthErrorCodeUserMismatch現在のユーザーではないユーザーで再認証が試行されたことを示します。
FIRAuthErrorCodeOperationNotAllowedクレデンシャルで表されるIDプロバイダーのアカウントが有効になっていないことを示します。 Firebaseコンソールの[認証]セクションで有効にします。
FIRAuthErrorCodeEmailAlreadyInUseクレデンシャルによってアサートされた電子メール(Facebookアクセストークン内の電子メールなど)が既存のアカウントですでに使用されており、このサインイン方法では再認証できないことを示します。このユーザーの電子メールに対してfetchProvidersForEmailを呼び出してから、返されたサインインプロバイダーのいずれかを使用してサインインするようにユーザーに促します。このエラーは、 Firebaseコンソールの[認証設定]で[メールアドレスごとに1つのアカウント]設定が有効になっている場合にのみスローされます。
FIRAuthErrorCodeUserDisabledユーザーのアカウントが無効になっていることを示します。

updateEmail:completion:

コード意味
FIRAuthErrorCodeEmailAlreadyInUseメールがすでに別のアカウントで使用されていることを示します。
FIRAuthErrorCodeInvalidEmailメールアドレスの形式が正しくないことを示します。
FIRAuthErrorCodeRequiresRecentLoginユーザーの電子メールの更新はセキュリティ上重要な操作であり、ユーザーからの最近のログインが必要です。このエラーは、ユーザーが最近十分にサインインしていないことを示します。解決するには、 FIRUserでreauthenticateWithCredential reauthenticateWithCredential:completion:を呼び出してユーザーを再認証します。

updatePassword:completion:

コード意味
FIRAuthErrorCodeOperationNotAllowed管理者が指定されたIDプロバイダーでのサインインを無効にしたことを示します。
FIRAuthErrorCodeRequiresRecentLoginユーザーのパスワードの更新はセキュリティ上重要な操作であり、ユーザーからの最近のログインが必要です。このエラーは、ユーザーが最近十分にサインインしていないことを示します。解決するには、 FIRUserでreauthenticateWithCredential reauthenticateWithCredential:completion:を呼び出してユーザーを再認証します。
FIRAuthErrorCodeWeakPassword弱すぎると見なされるパスワードを設定しようとしたことを示します。 NSError.userInfoディクショナリオブジェクトのNSLocalizedFailureReasonErrorKeyフィールドには、ユーザーに表示できるより詳細な説明が含まれます。

linkWithCredential:completion:

コード意味
FIRAuthErrorCodeProviderAlreadyLinkedこのアカウントにすでにリンクされているタイプのプロバイダーをリンクする試みを示します。
FIRAuthErrorCodeCredentialAlreadyInUse別のFirebaseアカウントにすでにリンクされているクレデンシャルにリンクしようとしていることを示します。
FIRAuthErrorCodeOperationNotAllowedクレデンシャルで表されるIDプロバイダーのアカウントが有効になっていないことを示します。 Firebaseコンソールの[認証]セクションで有効にします。

このメソッドは、FIRUserのFIRUser updateEmail:completion:およびupdatePassword:completion:に関連付けられたエラーコードも返す場合があります。

unlinkFromProvider:completion:

コード意味
FIRAuthErrorCodeNoSuchProviderアカウントにリンクされていないプロバイダーのリンクを解除する試みを示します。
FIRAuthErrorCodeRequiresRecentLogin電子メールの更新はセキュリティ上重要な操作であり、ユーザーからの最近のログインが必要です。このエラーは、ユーザーが最近十分にサインインしていないことを示します。解決するには、 FIRUserでreauthenticateWithCredential reauthenticateWithCredential:completion:を呼び出してユーザーを再認証します。

sendEmailVerificationWithCompletion:

コード意味
FIRAuthErrorCodeUserNotFoundユーザーアカウントが見つからなかったことを示します。

deleteWithCompletion:

コード意味
FIRAuthErrorCodeRequiresRecentLoginユーザーアカウントの削除はセキュリティ上重要な操作であり、ユーザーからの最近のログインが必要です。このエラーは、ユーザーが最近十分にサインインしていないことを示します。解決するには、 FIRUserでreauthenticateWithCredential reauthenticateWithCredential:completion:を呼び出してユーザーを再認証します。