> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # MastraAuthFirebase クラス `MastraAuthFirebase` クラスは、Firebase Authentication を使用した認証を Mastra に提供します。Firebase ID トークンを使用して受信リクエストを検証し、`auth` オプションを使用して Mastra サーバーと統合します。 ## 使用例 ### 環境変数を使用する基本的な方法 ```typescript import { Mastra } from '@mastra/core' import { MastraAuthFirebase } from '@mastra/auth-firebase' // Automatically uses FIREBASE_SERVICE_ACCOUNT and FIRESTORE_DATABASE_ID env vars export const mastra = new Mastra({ server: { auth: new MastraAuthFirebase(), }, }) ``` ### カスタム設定 ```typescript import { Mastra } from '@mastra/core' import { MastraAuthFirebase } from '@mastra/auth-firebase' export const mastra = new Mastra({ server: { auth: new MastraAuthFirebase({ serviceAccount: '/path/to/service-account-key.json', databaseId: 'your-database-id', }), }, }) ``` ## コンストラクターのパラメーター **serviceAccount** (`string`): Firebase サービスアカウントの JSON ファイルへのパス。このファイルには、サーバー側で Firebase ID トークンを検証するために必要な認証情報が含まれます。 (Default: `process.env.FIREBASE_SERVICE_ACCOUNT`) **databaseId** (`string`): 使用する Firestore データベース ID。通常、デフォルトデータベースには '(default)' を指定します。 (Default: `process.env.FIRESTORE_DATABASE_ID || process.env.FIREBASE_DATABASE_ID`) **name** (`string`): 認証 Provider インスタンスのカスタム名。 (Default: `"firebase"`) **authorizeUser** (`(user: FirebaseUser) => Promise | boolean`): ユーザーにアクセスを許可するかどうかを決定するカスタム認可関数。トークンの検証後に呼び出されます。デフォルトでは、ユーザーの UID をキーとする 'user\_access' コレクション内にドキュメントが存在するかどうかを確認します。 ## 環境変数 コンストラクターのオプションが指定されていない場合、次の環境変数が自動的に使用されます。 **FIREBASE\_SERVICE\_ACCOUNT** (`string`): Firebase サービスアカウントの JSON ファイルへのパス。serviceAccount オプションが指定されていない場合に使用されます。 **FIRESTORE\_DATABASE\_ID** (`string`): Firestore データベース ID。データベース設定に使用される主要な環境変数です。 **FIREBASE\_DATABASE\_ID** (`string`): Firestore データベース ID の代替環境変数。FIRESTORE\_DATABASE\_ID が設定されていない場合に使用されます。 ## デフォルトの認可動作 デフォルトでは、`MastraAuthFirebase` は Firestore を使用してユーザーアクセスを管理します。 1. Firebase ID トークンの検証に成功すると、`authorizeUser` メソッドが呼び出されます 2. ユーザーの UID をドキュメント ID として、`user_access` コレクション内にドキュメントが存在するかどうかを確認します 3. ドキュメントが存在する場合はユーザーが認可され、存在しない場合はアクセスが拒否されます 4. 使用する Firestore データベースは、`databaseId` パラメーターまたは環境変数によって決まります ## Firebase ユーザー型 `authorizeUser` 関数で使用される `FirebaseUser` 型は Firebase の `DecodedIdToken` インターフェースに対応し、次のフィールドが含まれます。 - `uid`:ユーザーの一意の識別子 - `email`:ユーザーのメールアドレス(利用可能な場合) - `email_verified`:メールアドレスが検証済みかどうか - `name`:ユーザーの表示名(利用可能な場合) - `picture`:ユーザーのプロフィール画像の URL(利用可能な場合) - `auth_time`:ユーザーが認証された時刻 - その他の標準 JWT クレーム ## 関連情報 [MastraAuthFirebase クラス](https://mastra.zisheng.pro/ja/docs/server/auth/firebase)