表示 Firebase Auth 服务的接口。
如需了解有关如何使用 Firebase Auth 服务的完整指南,请参阅 Firebase 身份验证。
Signature:
export interface Auth
属性
媒体资源 | 类型 | 说明 |
---|---|---|
应用 | FirebaseApp | 与 Auth 服务实例关联的 FirebaseApp。 |
配置 | 配置 | 用于初始化此实例的 Config。 |
currentUser | 用户 | null | 当前登录的用户(或 null)。 |
emulatorConfig | EmulatorConfig | null | 当前的模拟器配置(或 null)。 |
languageCode | 字符串 | null | Auth 实例的语言代码。 |
name | string | 与 Auth 服务实例关联的应用的名称。 |
设置 | AuthSettings | Auth 实例的设置。 |
tenantId | 字符串 | null | Auth 实例的租户 ID。 |
方法
方法 | 说明 |
---|---|
authStateReady() | 返回一个在初始身份验证状态解决后立即解析的 promise。promise 解析后,当前用户可能是有效用户,如果用户退出登录,则可能是 null 。 |
beforeAuthStateChanged(callback, onAbort) | 添加在身份验证状态更改设置新用户之前运行的阻塞回调。 |
onAuthStateChanged(nextOrObserver, error, completed) | 为用户登录状态的更改添加观察器。 |
onIdTokenChanged(nextOrObserver, error, completed) | 为已登录用户的 ID 令牌的更改添加观察者。 |
setPersistence(persistence) | 用于更改 Auth 实例上的保留类型。 |
signOut() | 退出当前用户账号。此操作不会自动撤消用户的 ID 令牌。 |
updateCurrentUser(user) | 在 Auth 实例上将提供的用户异步设置为 Auth.currentUser。 |
useDeviceLanguage() | 将当前语言设置为默认设备/浏览器偏好设置。 |
Auth.app
与 Auth
服务实例关联的 FirebaseApp。
Signature:
readonly app: FirebaseApp;
Auth.config
用于初始化此实例的 Config。
Signature:
readonly config: Config;
Auth.currentUser
当前登录的用户(或 null)。
Signature:
readonly currentUser: User | null;
Auth.emulatorConfig
当前的模拟器配置(或 null)。
Signature:
readonly emulatorConfig: EmulatorConfig | null;
Auth.languageCode
Auth 实例的语言代码。
这是一个可读/可写属性。如果此政策设为 null,系统会应用默认的 Firebase 控制台语言设置。如果指定的提供商支持使用指定的语言代码进行本地化,语言代码将传播到电子邮件操作模板(密码重置、电子邮件验证和撤销电子邮件更改)、用于电话身份验证的短信模板、reCAPTCHA 验证程序和 OAuth 弹出/重定向操作。
Signature:
languageCode: string | null;
Auth.name
与 Auth
服务实例关联的应用的名称。
Signature:
readonly name: string;
Auth.settings
Auth 实例的设置。
此字段用于修改/读取与配置相关的选项,例如用于手机身份验证的应用验证模式。
Signature:
readonly settings: AuthSettings;
Auth.tenantId
Auth 实例的租户 ID。
这是一个可读/可写属性。设置 Auth 实例的租户 ID 后,所有后续登录/注册操作都会传递此租户 ID,让用户登录或注册指定的租户项目。如果此政策设为 null,用户会登录父级项目。
Signature:
tenantId: string | null;
示例
// Set the tenant ID on Auth instance.
auth.tenantId = 'TENANT_PROJECT_ID';
// All future sign-in request now include tenant ID.
const result = await signInWithEmailAndPassword(auth, email, password);
// result.user.tenantId should be 'TENANT_PROJECT_ID'.
Auth.authStateReady()
返回一个在初始身份验证状态解决后立即解析的 promise。promise 解析后,当前用户可能是有效用户,如果用户退出登录,则可能是 null
。
Signature:
authStateReady(): Promise<void>;
返回:
Promise<void>
Auth.beforeAuthStateChanged()
添加在身份验证状态更改设置新用户之前运行的阻塞回调。
Signature:
beforeAuthStateChanged(callback: (user: User | null) => void | Promise<void>, onAbort?: () => void): Unsubscribe;
参数
参数 | 类型 | 说明 |
---|---|---|
callback | (user: User | null) => void | Promise<void> | 回调函数。如果抛出该异常,则会阻止设置用户。 |
onAbort | () => 无效 | 回调触发,从而允许您撤消任何附带效应。beforeAuthStateChanged() |
返回:
Auth.onAuthStateChanged()
为用户登录状态的更改添加观察器。
如需保留旧行为,请参阅 Auth.onIdTokenChanged()。
Signature:
onAuthStateChanged(nextOrObserver: NextOrObserver<User | null>, error?: ErrorFn, completed?: CompleteFn): Unsubscribe;
参数
参数 | 类型 | 说明 |
---|---|---|
nextOrObserver | NextOrObserver<User | null> | 回调时触发。 |
error | ErrorFn | 已弃用。此回调绝不会触发。从登录/退出函数返回的 promise 中可能会捕获登录/退出错误。 |
已完成 | CompleteFn | 已弃用。此回调绝不会触发。 |
返回:
Auth.onIdTokenChanged()
为已登录用户的 ID 令牌的更改添加观察者。
包括登录、退出和令牌刷新事件。
Signature:
onIdTokenChanged(nextOrObserver: NextOrObserver<User | null>, error?: ErrorFn, completed?: CompleteFn): Unsubscribe;
参数
参数 | 类型 | 说明 |
---|---|---|
nextOrObserver | NextOrObserver<User | null> | 回调时触发。 |
error | ErrorFn | 已弃用。此回调绝不会触发。从登录/退出函数返回的 promise 中可能会捕获登录/退出错误。 |
已完成 | CompleteFn | 已弃用。此回调绝不会触发。 |
返回:
Auth.setPersistence()
用于更改 Auth
实例上的保留类型。
这会影响当前保存的 Auth 会话,并会将这种保留类型应用于未来的登录请求,包括使用重定向请求进行的登录。
这方便登录的用户指定是否应记住其会话。对于由其他用户共享或包含敏感数据的应用,这也使得永远不会保留身份验证状态。
此方法不适用于 Node.js 环境。
Signature:
setPersistence(persistence: Persistence): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
持久性 | 持久性 | 要使用的持久性。 |
返回:
Promise<void>
示例
auth.setPersistence(browserSessionPersistence);
Auth.signOut()
退出当前用户账号。此操作不会自动撤消用户的 ID 令牌。
使用 FirebaseServerApp 创建的 Auth 实例不支持此方法。
Signature:
signOut(): Promise<void>;
返回:
Promise<void>
Auth.updateCurrentUser()
在 Auth 实例上将提供的用户异步设置为 Auth.currentUser。
系统将创建该用户的新实例副本,并将其设置为 currentUser。
与其他登录方法一样,这将触发 Auth.onAuthStateChanged() 和 Auth.onIdTokenChanged() 监听器。
如果要更新的用户属于其他 Firebase 项目,操作将失败并报错。
Signature:
updateCurrentUser(user: User | null): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | 用户 | null | 新的 User。 |
返回:
Promise<void>
Auth.useDeviceLanguage()
将当前语言设置为默认设备/浏览器偏好设置。
Signature:
useDeviceLanguage(): void;
返回:
void