Auth interface

代表 Firebase Auth 服务的接口。

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

签名:

export interface Auth 

特性

财产类型描述
应用程序Firebase应用程序Auth服务实例关联的FirebaseApp
配置配置用于初始化此实例的Config
当前用户用户|无效的当前登录的用户(或 null)。
模拟器配置模拟器配置|无效的当前模拟器配置(或 null)。
语言代码字符串|无效的Auth实例的语言代码。
姓名细绳Auth服务实例关联的应用程序的名称。
设置验证设置Auth实例的设置。
租户ID字符串|无效的Auth实例的租户 ID。

方法

方法描述
authStateReady()返回一个在初始身份验证状态确定后立即解决的承诺。当承诺解决时,当前用户可能是有效用户,如果用户注销,则当前用户可能null
beforeAuthStateChanged(回调,onAbort)添加在身份验证状态更改设置新用户之前运行的阻止回调。
onAuthStateChanged(nextOrObserver,错误,已完成)添加观察者以观察用户登录状态的变化。
onIdTokenChanged(nextOrObserver,错误,已完成)添加一个观察者以监视登录用户的 ID 令牌的更改。
设置持久性(持久性)更改Auth实例上的持久性类型。
登出()注销当前用户。这不会自动撤销用户的 ID 令牌。
更新当前用户(用户)Auth实例上异步将提供的用户设置为Auth.currentUser
使用设备语言()将当前语言设置为默认设备/浏览器首选项。

认证应用程序

Auth服务实例关联的FirebaseApp

签名:

readonly app: FirebaseApp;

认证配置

用于初始化此实例的Config

签名:

readonly config: Config;

验证当前用户

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

签名:

readonly currentUser: User | null;

Auth.emulatorConfig

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

签名:

readonly emulatorConfig: EmulatorConfig | null;

授权语言代码

Auth实例的语言代码。

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

签名:

languageCode: string | null;

授权名称

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

签名:

readonly name: string;

认证设置

Auth实例的设置。

这用于编辑/读取配置相关选项,例如用于电话身份验证的应用程序验证模式。

签名:

readonly settings: AuthSettings;

验证租户Id

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()

返回一个在初始身份验证状态确定后立即解决的承诺。当承诺解决时,当前用户可能是有效用户,如果用户注销,则当前用户可能null

签名:

authStateReady(): Promise<void>;

返回:

承诺<无效>

Auth.beforeAuthStateChanged()

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

签名:

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

参数

范围类型描述
打回来(用户:用户| null)=> void |承诺<无效>设置新用户值之前触发的回调。如果抛出此异常,则会阻止用户被设置。
中止时() => 无效如果稍后的beforeAuthStateChanged()回调抛出,则会触发回调,允许您撤消任何副作用。

返回:

退订

Auth.onAuthStateChanged()

添加观察者以观察用户登录状态的变化。

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

签名:

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

参数

范围类型描述
下一个或观察者下一个或观察者<用户|空>更改时触发回调。
错误错误Fn已弃用。这个回调永远不会被触发。登录/注销时的错误可以在从登录/注销函数返回的承诺中捕获。
完全的完整Fn已弃用。这个回调永远不会被触发。

返回:

退订

Auth.onIdTokenChanged()

添加一个观察者以监视登录用户的 ID 令牌的更改。

这包括登录、注销和令牌刷新事件。

签名:

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

参数

范围类型描述
下一个或观察者下一个或观察者<用户|空>更改时触发回调。
错误错误Fn已弃用。这个回调永远不会被触发。登录/注销时的错误可以在从登录/注销函数返回的承诺中捕获。
完全的完整Fn已弃用。这个回调永远不会被触发。

返回:

退订

Auth.setPersistence()

更改Auth实例上的持久性类型。

这将影响当前保存的身份验证会话,并将这种类型的持久性应用于将来的登录请求,包括使用重定向请求登录。

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

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

签名:

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

参数

范围类型描述
坚持坚持坚持使用。

返回:

承诺<无效>

例子

auth.setPersistence(browserSessionPersistence);

Auth.signOut()

注销当前用户。这不会自动撤销用户的 ID 令牌。

签名:

signOut(): Promise<void>;

返回:

承诺<无效>

Auth.updateCurrentUser()

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

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

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

如果要更新的用户属于不同的 Firebase 项目,则操作会失败并出现错误。

签名:

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

参数

范围类型描述
用户用户|无效的用户

返回:

承诺<无效>

Auth.useDeviceLanguage()

将当前语言设置为默认设备/浏览器首选项。

签名:

useDeviceLanguage(): void;

返回:

空白