Auth interface

表示 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