4.

Firebase エラー一覧(Auth / Firestore / Functions / Hosting 主要エラーコードと対処)

編集
この記事の要点
  • Firebase の代表的エラーを Authentication / Firestore / Realtime DB / Functions / Hosting ごとに整理
  • Auth では auth/email-already-in-use auth/wrong-password auth/too-many-requests が頻出
  • Firestore は permission-denied(セキュリティルール)と unavailable(オフライン / 接続)が 2 大頻出
  • Functions は deadline-exceeded resource-exhausted internal に注意
  • 初動は code フィールドセキュリティルールの確認。詳細は子ページで解説

本ページは Firebase で運用中によく遭遇するエラーを横断的にまとめたハブ記事です。各エラーの詳細はサービス別の子ページに分けて掲載しています。まずは下表で症状から該当ケースを見つけ、必要に応じて詳細記事へ進んでください。

Firebase Authentication

code意味典型的な対処
auth/email-already-in-useそのメールアドレスは既に登録済みログイン誘導 or パスワード再発行
auth/invalid-emailメールアドレス書式不正クライアントでバリデート
auth/user-not-found該当ユーザがいない新規登録誘導(メッセージは曖昧に)
auth/wrong-passwordパスワード不一致「ID/PW が正しくありません」と表示(情報漏洩防止)
auth/weak-passwordパスワード強度不足(6 文字未満)UI でルール提示
auth/too-many-requests連続失敗で一時的ロック時間をおいて再試行 / reCAPTCHA
auth/network-request-failedネットワーク断リトライ + オフライン UI
auth/operation-not-allowed該当の認証プロバイダが無効化されているConsole で有効化
auth/account-exists-with-different-credential同メールが別プロバイダで登録済み既存プロバイダでログインし linkWithCredential
auth/id-token-expiredID トークン期限切れSDK は自動更新。手動なら getIdToken(true)
auth/invalid-action-code確認 URL / 再設定リンク失効再送信

Cloud Firestore

code意味典型的な対処
permission-deniedセキュリティルールで拒否Rules を見直す。request.auth.uid を確認
unauthenticatedログインしていないAuth ステート確認後にクエリ
unavailableサービス一時停止 / オフラインリトライ(指数バックオフ)
deadline-exceededタイムアウトクエリを軽くする、インデックス追加
failed-preconditionインデックス不足 / トランザクション競合エラーメッセージのリンクからインデックス作成
resource-exhaustedクォータ超過クォータ拡張申請、書込頻度を抑制
not-foundドキュメント不在.exists をチェック
abortedトランザクション中断(再試行されるが上限あり)トランザクション競合の削減

Realtime Database

code意味典型的な対処
PERMISSION_DENIEDルールで拒否rules.json の .read / .write を確認
UNAVAILABLE / NETWORK_ERROR接続断オフラインキャッシュに任せる、再接続待ち
DISCONNECTEDWebSocket 切断SDK が自動再接続
OVERRIDDEN_BY_SET同パスへの set が競合update に変える、トランザクション化

Cloud Functions for Firebase

code意味典型的な対処
deadline-exceeded関数タイムアウト(既定 60 秒)分割 / バックグラウンド化、timeoutSeconds 拡大
resource-exhaustedメモリ・同時実行上限memory 設定変更、最大インスタンス数を見直し
internal関数内で未捕捉例外Cloud Logging のスタックトレースを確認
invalid-argumentクライアントから渡したデータが不正関数側でバリデート
unauthenticatedonCall で context.auth が nullクライアントでサインイン状態確認
permission-deniedカスタムクレームによる権限不足クレーム付与の処理を見直す
Deployment failedデプロイ時のビルド失敗firebase deploy --debug でログ確認、Node バージョン整合

Firebase Hosting

状況原因対処
404 Not Foundfirebase.json の rewrites 設定漏れSPA は "source": "**", "destination": "/index.html"
カスタムドメインで証明書発行されないDNS の TXT / A レコード不整合Console の指示通りに DNS 更新、TTL を短く
古いコンテンツが表示CDN キャッシュCache-Control ヘッダ調整、強制再読み込み
Deploy quota exceeded1 日のデプロイ回数 / バージョン数上限不要バージョンを削除、デプロイをまとめる

初動:エラーオブジェクトを見る

Firebase SDK のエラーには code(文字列)と message(人間向け説明)が必ず含まれます。クライアントでは次のように分岐させます。

import { signInWithEmailAndPassword } from 'firebase/auth';

try {
  await signInWithEmailAndPassword(auth, email, password);
} catch (e) {
  switch (e.code) {
    case 'auth/wrong-password':
    case 'auth/user-not-found':
      // 情報漏洩防止のため同じメッセージで返す
      setMessage('メールアドレスまたはパスワードが正しくありません');
      break;
    case 'auth/too-many-requests':
      setMessage('試行回数が多すぎます。しばらくしてからお試しください');
      break;
    case 'auth/network-request-failed':
      setMessage('ネットワークエラー。接続を確認してください');
      break;
    default:
      console.error(e); // 想定外は開発者へ
      setMessage('エラーが発生しました');
  }
}

セキュリティルールの基本確認

Firestore / Realtime DB / Storage はすべてサーバ側ルールで拒否されます。permission-denied が出たらまずルールを疑うのが鉄則です。

// Firestore セキュリティルール(最小例)
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{uid} {
      allow read:  if request.auth != null && request.auth.uid == uid;
      allow write: if request.auth != null && request.auth.uid == uid;
    }
  }
}

関連

  • Firebase — 親カテゴリ
  • 各エラーの詳細は子ページを参照
  • エラー一覧 — WordPress 版
編集
Post Share
子ページ
  1. npm ERR! path ~\%RESOURCE_DIR%\package.json
同階層のページ
  1. プロジェクトの作成とアプリ連携
  2. Firebaseアプリの導入(初期設定)と開発用ローカルサーバの起動方法
  3. Firebase Hosting(執筆途中)
  4. エラー一覧

最近更新/作成されたページ