> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # MastraAuthFirebase 类 `MastraAuthFirebase` 类使用 Firebase Authentication 为 Mastra 提供身份验证。它通过 Firebase ID token 验证传入请求,并使用 `auth` 选项与 Mastra server 集成。 ## 使用示例 ### 使用环境变量的基本用法 ```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 token 所需的凭据。 (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`): 用于确定是否应授予用户访问权限的自定义授权函数。在 token 验证后调用。默认检查 'user\_access' collection 中是否存在以用户 UID 为键的文档。 ## 环境变量 未提供构造函数选项时,会自动使用以下环境变量: **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 token 后,调用 `authorizeUser` 方法 2. 检查 `user_access` collection 中是否存在以用户 UID 作为文档 ID 的文档 3. 如果文档存在,则用户获得授权;否则拒绝访问 4. 使用的 Firestore 数据库由 `databaseId` 参数或环境变量决定 ## Firebase 用户类型 `authorizeUser` 函数使用的 `FirebaseUser` 类型对应 Firebase 的 `DecodedIdToken` interface,其中包括: - `uid`:用户的唯一标识符 - `email`:用户的电子邮件地址(如果可用) - `email_verified`:电子邮件是否已验证 - `name`:用户的显示名称(如果可用) - `picture`:用户头像的 URL(如果可用) - `auth_time`:用户通过身份验证的时间 - 其他标准 JWT claim ## 相关内容 [MastraAuthFirebase 类](https://mastra.zisheng.pro/docs/server/auth/firebase)