Auth interface

表示 Firebase 身份验证服务的接口。

如需查看有关如何使用 Firebase 身份验证服务的完整指南,请参阅 Firebase 身份验证

签名

export interface Auth 

属性

属性 类型 说明
应用 FirebaseApp Auth 服务实例关联的 FirebaseApp
配置 配置 用于初始化此实例的配置
currentUser 用户 |null 当前登录的用户(或 null)。
emulatorConfig EmulatorConfignull 当前模拟器配置(或 null)。
languageCode 字符串 |null Auth 实例的语言代码。
name 字符串 Auth 服务实例相关联的应用的名称。
设置 AuthSettings Auth 实例的设置。
tenantId 字符串 |null Auth 实例的租户 ID。

方法

方法 说明
authStateReady() 返回一个在初始身份验证状态解决后立即解析的 promise。当 promise 进行解析时,当前用户可能是有效用户;如果用户未登录,则当前用户可能是 null
beforeAuthStateChanged(callback, onAbort) 添加在身份验证状态更改设置新用户之前运行的阻塞回调。
onAuthStateChanged(nextOrObserver, 错误, 已完成) 为用户登录状态的变化添加观察器。
onIdTokenChanged(nextOrObserver, 错误, 已完成) 为已登录用户的 ID 令牌的变更添加观察者。
setPersistence(持久性) 更改 Auth 实例的保留类型。
signOut() 退出当前用户。此操作不会自动撤消用户的 ID 令牌。
updateCurrentUser(用户) Auth 实例上将提供的用户异步设置为 Auth.currentUser
useDeviceLanguage() 将当前语言设置为默认的设备/浏览器偏好设置。

Auth.app

Auth 服务实例关联的 FirebaseApp

签名

readonly app: FirebaseApp;

Auth.config

用于初始化此实例的配置

签名

readonly config: Config;

Auth.currentUser

当前登录的用户(或 null)。

签名

readonly currentUser: User | null;

Auth.emulatorConfig

当前模拟器配置(或 null)。

签名

readonly emulatorConfig: EmulatorConfig | null;

Auth.languageCode

Auth 实例的语言代码。

这是一个可读/可写属性。如果设置为 null,系统会应用默认的 Firebase 控制台语言设置。语言代码将传播到电子邮件操作模板(密码重置、电子邮件验证和电子邮件更改撤消)、电话身份验证的短信模板、reCAPTCHA 验证程序和 OAuth 弹出/重定向操作,前提是指定的提供商支持使用指定语言代码的本地化。

签名

languageCode: string | null;

Auth.name

Auth 服务实例相关联的应用的名称。

签名

readonly name: string;

Auth.settings

Auth 实例的设置。

此属性用于修改/读取与配置相关的选项,例如用于电话身份验证的应用验证模式。

签名

readonly settings: AuthSettings;

Auth.tenantId

Auth 实例的租户 ID。

这是一个可读/可写属性。设置 Auth 实例的租户 ID 后,所有后续登录/注册操作都将传递此租户 ID,并使用户登录或注册指定的租户项目。如果设置为 null,用户会登录父项目。

签名

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

签名

authStateReady(): Promise<void>;

返回

承诺<void>

Auth.beforeAuthStateChanged()

添加在身份验证状态更改设置新用户之前运行的阻塞回调。

签名

beforeAuthStateChanged(callback: (user: User | null) => void | Promise<void>, onAbort?: () => void): Unsubscribe;

参数

参数 类型 说明
callback (用户:用户 | null)=>无效 |承诺<void> 在设置新用户值之前触发的回调函数。如果抛出此异常,则会阻止设置用户。
onAbort () =>无效 稍后抛出 beforeAuthStateChanged() 回调时触发的回调,让您能够撤消任何副作用。

返回

退订

Auth.onAuthStateChanged()

为用户登录状态的变化添加观察器。

如需保留旧行为,请参阅 Auth.onIdTokenChanged()

签名

onAuthStateChanged(nextOrObserver: NextOrObserver<User | null>, error?: ErrorFn, completed?: CompleteFn): Unsubscribe;

参数

参数 类型 说明
nextOrObserver 观察 NextOrObserver<用户 |null> 回调函数时触发。
error ErrorFn 错误 已弃用。此回调绝不会触发。登录/退出错误可能会在登录/退出函数返回的 promise 中捕获。
已完成 CompleteFn 已弃用。此回调绝不会触发。

返回

退订

Auth.onIdTokenChanged()

为已登录用户的 ID 令牌的变更添加观察者。

这包括登录、退出和令牌刷新事件。

签名

onIdTokenChanged(nextOrObserver: NextOrObserver<User | null>, error?: ErrorFn, completed?: CompleteFn): Unsubscribe;

参数

参数 类型 说明
nextOrObserver 观察 NextOrObserver<用户 |null> 回调函数时触发。
error ErrorFn 错误 已弃用。此回调绝不会触发。登录/退出错误可能会在登录/退出函数返回的 promise 中捕获。
已完成 CompleteFn 已弃用。此回调绝不会触发。

返回

退订

Auth.setPersistence()

更改 Auth 实例的保留类型。

这会影响当前保存的身份验证会话,并将这种类型的保留应用于未来的登录请求,包括通过重定向请求进行的登录。

这使得登录用户可以轻松指定是否应记住其会话。此外,这也让您可以更轻松地永远不会为其他用户共享或具有敏感数据的应用保留身份验证状态。

此方法不适用于 Node.js 环境。

签名

setPersistence(persistence: Persistence): Promise<void>;

参数

参数 类型 说明
持久性, 持久性 要使用的持久性

返回

承诺<void>

示例

auth.setPersistence(browserSessionPersistence);

Auth.signOut()

退出当前用户。此操作不会自动撤消用户的 ID 令牌。

使用 FirebaseServerApp 创建的 Auth 实例不支持此方法

签名

signOut(): Promise<void>;

返回

承诺<void>

Auth.updateCurrentUser()

Auth 实例上将提供的用户异步设置为 Auth.currentUser

将创建所提供的用户的新实例副本,并将其设置为 currentUser。

这会像其他登录方法一样触发 Auth.onAuthStateChanged()Auth.onIdTokenChanged() 监听器。

如果要更新的用户属于其他 Firebase 项目,则操作将失败并显示错误。

签名

updateCurrentUser(user: User | null): Promise<void>;

参数

参数 类型 说明
用户 用户 |null 新的 User

返回

承诺<void>

Auth.useDeviceLanguage()

将当前语言设置为默认的设备/浏览器偏好设置。

签名

useDeviceLanguage(): void;

返回

void