mcpField
F
firebase-auth-basics

firebase-auth-basics

公式
github.com/firebaseデータ・データベース491176.0k 回インストール1 日前に更新
リポジトリ

firebase-auth-basics について

firebase-auth-basics は Firebase Authentication の入門向け Skill であり、ユーザー、IDプロバイダー、トークンなどの基本概念を扱います。firebase.json と CLI による認証設定方法を説明し、アプリにサインイン機能を追加する開発者に向けた内容です。

主な機能

  1. 01ユーザーと uid などの基本概念
  2. 02対応する IDプロバイダーの一覧
  3. 03firebase.json による認証設定とデプロイ
  4. 04Web、Flutter、Android、iOS のクライアント手順
  5. 05request.auth を用いたセキュリティルール

活用シーン

  1. 01アプリへのメールまたは Google サインインの追加
  2. 02承認されていないドメインによるログインエラーの解決

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/firebase/agent-skills --skill firebase-auth-basics

インストール後、Claude Code で/firebase-auth-basicsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
client_sdk_android.md
client_sdk_web.md
flutter_setup.md
ios_setup.md
security_rules.md

詳細

前提条件

  • Firebase プロジェクト:npx -y firebase-tools@latest projects:create を使って作成します(firebase-basics を参照)。
  • Firebase CLI:インストールしてログインします(firebase-basics を参照)。

基本概念

Firebase Authentication は、アプリのユーザーを認証するためのバックエンドサービス、使いやすい SDK、すぐに使える UI ライブラリを提供します。

ユーザー

ユーザーとは、アプリにサインインできるエンティティです。各ユーザーには、一意性が保証された固有の ID(uid)が割り当てられます。この ID はすべてのプロバイダーにわたって一意です。ユーザーのプロパティには次のものがあります。

  • uid:一意の識別子。
  • email:ユーザーのメールアドレス(利用可能な場合)。
  • displayName:ユーザーの表示名(利用可能な場合)。
  • photoURL:ユーザーの写真の URL(利用可能な場合)。
  • emailVerified:メールアドレスが確認済みかどうかを示すブール値。
ID プロバイダー

Firebase Auth では、複数のサインイン方法がサポートされています。

  • メールアドレス/パスワード:基本的なメールアドレスとパスワードによる認証。
  • フェデレーション ID プロバイダー:Google、Facebook、Twitter、GitHub、Microsoft、Apple など。
  • 電話番号:SMS ベースの認証。
  • 匿名:後で永続アカウントにリンクできる一時的なゲストアカウント。
  • カスタム認証:既存の認証システムと統合します。

Google Sign In は、安全で使いやすいデフォルトのプロバイダーとして推奨されます。

トークン

ユーザーがサインインすると、ID トークン(JWT)が発行されます。このトークンは、Firebase サービス(Realtime Database、Cloud Storage、Firestore)や独自のバックエンドにリクエストを送信する際、ユーザーの識別に使用されます。

  • ID トークン:有効期間が短く(1 時間)、本人確認に使用されます。
  • リフレッシュトークン:有効期間が長く、新しい ID トークンの取得に使用されます。

ワークフロー

1. プロビジョニング
オプション 1. CLI で認証を有効にする

CLI で有効にできるのは、Google Sign In、匿名認証、メールアドレス/パスワード認証のみです。その他のプロバイダーは Firebase Console を使用してください。

firebase.json に「auth」ブロックを追加して、Firebase Authentication を設定します。

{
  "auth": {
    "providers": {
      "anonymous": true,
      "emailPassword": true,
      "googleSignIn": {
        "oAuthBrandDisplayName": "Your Brand Name",
        "supportEmail": "[email protected]",
        "authorizedRedirectUris": [
          "https://my-project-id.firebaseapp.com/__/auth/handler",
          "http://localhost"
        ]
      }
    }
  }
}

メモ

Google Sign-In のポップアップが開いてすぐに閉じ、エラー [firebase_auth/unauthorized-domain] が表示される場合は、そのドメインが許可されていないことを意味します。ローカル開発では、firebase.json の authorizedRedirectUris に http://localhost を追加してください(または、Firebase Console の Authentication > Settings > Authorized domains にある Authorized Domains リストに localhost が含まれていることを確認してください)。重要:authorizedRedirectUris にポート番号を含めないでください(例:http://localhost を使用し、http://localhost:9090 や http://localhost:4000 は使用しないでください)。また、Console の Authorized Domains リストにはプロトコルやポート番号を含めず、localhost を使用してください。authorizedRedirectUris にポート番号を含めると、firebase deploy --only auth が INVALID_AUTHORIZED_DOMAIN で失敗します。

重要:firebase.json の設定後、変更を反映するには、認証設定を Firebase バックエンドにデプロイする必要があります。これは、Google Sign-In やメールアドレス/パスワードなどの認証プロバイダーが、アプリのプラットフォームに必要な OAuth クライアントを自動生成するうえで不可欠です。次のコマンドを実行します。

npx -y firebase-tools@latest deploy --only auth
オプション 2. Console で認証を有効にする

Firebase Console でその他のプロバイダーを有効にします。

  1. 次のページに移動します。 https://console.firebase.google.com/project/_/authentication/providers
  2. プロジェクトを選択します。
  3. 目的のサインインプロバイダー(例:メールアドレス/パスワード、Google)を有効にします。
2. クライアントのセットアップと使用方法

Web:references/client_sdk_web.md を参照してください。

Flutter:references/flutter_setup.md を参照してください。 Android(Kotlin): references/client_sdk_android.md を参照してください。

iOS(Swift):references/ios_setup.md を参照してください。

3. セキュリティルール

Firestore/Storage のルールで request.auth を使ってデータを保護します。

references/security_rules.md を参照してください。

コメント