Firebase Authentication
函数
类
类 | 说明 |
---|---|
操作代码网址 | 一个实用程序类,用于解析电子邮件操作网址,如密码重置、电子邮件验证、电子邮件链接登录等。 |
AuthCredential | 表示 AuthProvider 返回的凭据的接口。 |
EmailAuthCredential | 表示 EmailAuthProvider 针对 ProviderId.PASSWORD 返回的凭据的接口 |
EmailAuthProvider | 用于生成 EmailAuthCredential 的提供程序。 |
FacebookAuthProvider | 用于为 ProviderId.FACEBOOK 生成 OAuthCredential 的提供程序。 |
GithubAuthProvider | 用于为 ProviderId.GITHUB 生成 OAuthCredential 的提供程序。 |
GoogleAuthProvider | 用于为 ProviderId.GOOGLE 生成 OAuthCredential 的提供程序。 |
OAuthCredential | 表示 OAuthProvider 返回的 OAuth 凭据。 |
OAuthProvider | 用于生成常规 OAuthCredential 的提供程序。 |
PhoneAuthCredential | 表示 PhoneAuthProvider 返回的凭据。 |
PhoneAuthProvider | 用于生成 PhoneAuthCredential 的提供程序。 |
PhoneMultiFactorGenerator | 用于生成 PhoneMultiFactorAssertion 的提供程序。 |
RecaptchaVerifier | 基于 reCAPTCHA 的应用验证程序。 |
SAMLAuthProvider | SAML 的 AuthProvider。 |
TotpMultiFactorGenerator | 用于生成 TotpMultiFactorAssertion 的提供程序。 |
TotpSecret | 用于生成 TotpMultiFactorAssertion 的提供程序。存储共享密钥和其他参数,以生成基于时间的动态密码。实现检索共享密钥和生成二维码网址的方法。 |
TwitterAuthProvider | 用于为 ProviderId.TWITTER 生成 OAuthCredential 的提供程序。 |
接口
接口 | 说明 |
---|---|
ActionCodeInfo | 来自 checkActionCode() 的响应。 |
ActionCodeSettings | 通过可选的 Android 和 iOS 软件包标识符定义所需的接续/状态网址的接口。 |
AdditionalUserInfo | 包含来自联合身份提供方的额外用户信息的结构。 |
ApplicationVerifier | 用于验证域名和防止滥用的验证程序。 |
身份验证 | 表示 Firebase Auth 服务的接口。 |
AuthError | Auth 错误的接口。 |
AuthErrorMap | 错误代码到错误消息的映射。 |
AuthProvider | 表示身份验证提供方的接口,用于协助创建 AuthCredential。 |
身份验证设置 | 表示 Auth 实例设置的接口。 |
配置 | 表示 Auth 配置的接口。 |
ConfirmationResult | 电话号码登录、关联或重新验证通话所产生的结果。 |
依赖项 | 可用于初始化 Auth 实例的依赖项。 |
EmulatorConfig | Firebase Authentication 模拟器的配置。 |
IdTokenResult | 用于表示从 User.getIdTokenResult() 获取的 ID 令牌结果的接口。 |
MultiFactorAssertion | 用于声明第二重身份验证所有权的基类。 |
MultiFactorError | 用户需要提供第二重身份验证才能成功登录时抛出的错误。 |
MultiFactorInfo | 包含第二重身份验证实体的信息的结构。 |
MultiFactorResolver | 该类用于在用户需要提供第二重身份验证才能登录时方便从 MultiFactorError 恢复。 |
MultiFactorSession | 用于定义多重身份验证会话对象的接口,该对象用于为用户注册第二重身份验证,或帮助已注册的用户登录第二重身份验证。 |
MultiFactorUser | 一个接口,用于定义与 User 相关的多重身份验证相关属性和操作。 |
OAuthCredentialOptions | 定义用于初始化 OAuthCredential 的选项。 |
ParsedToken | 表示已解析的 ID 令牌的接口。 |
密码政策 | 用于指定密码政策要求的结构。 |
PasswordValidationStatus | 一个结构,用于表明已满足或违反了哪些密码政策要求以及具体要求。 |
持久性 | 涵盖可能的持久性机制类型的接口。 |
PhoneMultiFactorAssertion | 用于声明对手机第二重身份验证的所有权的类。由 PhoneMultiFactorGenerator.assertion() 提供。 |
PhoneMultiFactorregistrationInfoOptions | 用于注册第二重身份验证的选项。 |
PhoneMultiFactorInfo | MultiFactorInfo 接口的子类,用于电话号码第二重身份验证。第二重身份验证的 factorId 是 FactorId.PHONE。 |
PhoneMultiFactorSignInInfoOptions | 用于使用第二重身份验证登录的选项。 |
PhoneSingleFactorInfoOptions | 用于单一身份验证登录的选项。 |
PopupRedirectResolver | 用于处理 DOM 特定操作(例如 signInWithPopup() 或 signInWithRedirect())的解析器。 |
ReactNativeAsyncStorage | 提供的 AsyncStorage 的接口。 |
RecaptchaParameters | 表示 reCAPTCHA 参数的接口。如需查看可接受参数的列表,请参阅 reCAPTCHA 文档。除 sitekey 外,其他所有参数均接受:Firebase Auth 会为每个项目配置一个 reCAPTCHA,并在呈现时配置网站密钥。对于不可见的 reCAPTCHA,请将 size 键设置为 invisible 。 |
TotpMultiFactorAssertion | 用于声明 TOTP 第二重身份验证所有权的类。由 TotpMultiFactorGenerator.assertionForEnrollment() 和 TotpMultiFactorGenerator.assertionForSignIn() 提供。 |
TotpMultiFactorInfo | 用于 TOTP 第二重身份验证的 MultiFactorInfo 接口的子类。第二重身份验证的 factorId 是 FactorId.TOTP。 |
User | 用户帐号。 |
UserCredential | 包含 User、OperationType 和提供方 ID 的结构。 |
用户信息 | 用户个人资料信息,仅对 Firebase 项目的应用可见。 |
UserMetadata | 表示用户元数据的界面。 |
变量
变量 | 说明 |
---|---|
ActionCodeOperation | 枚举可能的电子邮件操作类型。 |
AuthErrorCodes | 潜在 Auth 错误代码的映射,用于更轻松地与 SDK 抛出的错误进行比较。 |
browserLocalPersistence | LOCAL 类型的持久性的实现,其中对底层存储空间使用 localStorage 。 |
browserPopupRedirectResolver | PopupRedirectResolver 的实现,适用于基于浏览器的应用。 |
browserSessionPersistence | SESSION 的持久性的实现(使用 sessionStorage 作为底层存储空间)。 |
cordovaPopupRedirectResolver | PopupRedirectResolver 的实现,适用于基于 Cordova 的应用。 |
debugErrorMap | 详细的错误图,其中包含大多数错误代码的详细说明。请参阅 AuthErrorMap 的讨论 |
FactorId | 可用于多重身份验证的因素枚举。 |
indexedDBLocalPersistence | LOCAL 类型的持久性的实现,其中对底层存储空间使用 indexedDB 。 |
inMemoryPersistence | 类型为“NONE”的持久性的实现。 |
操作类型 | 支持的操作类型的枚举。 |
prodErrorMap | 移除了所有详细错误消息的最小错误映射。请参阅 AuthErrorMap 的讨论 |
ProviderId | 支持的提供程序的枚举。 |
SignInMethod | 支持的登录方法的枚举。 |
类型别名
类型别名 | 说明 |
---|---|
CustomParameters | OAuth 自定义参数的映射。 |
NextOrObserver | 事件回调的类型定义。 |
PhoneInfoOptions | 验证电话号码所有权所需的信息。 |
用户个人资料 | AdditionalUserInfo 中使用的用户个人资料。 |
function(app, ...)
getAuth(应用)
返回与提供的 FirebaseApp 关联的 Auth 实例。如果不存在实例,则使用平台专用的默认依赖项初始化 Auth 实例。
签名:
export declare function getAuth(app?: FirebaseApp): Auth;
参数
参数 | 类型 | 说明 |
---|---|---|
app | FirebaseApp | Firebase 应用。 |
返回:
initializeAuth(app, 依赖项)
与 getAuth() 相比,此函数可以更好地控制 Auth 实例。getAuth
使用平台特有的默认值来提供依赖项。通常,getAuth
是初始化 Auth 的最简单方法,适用于大多数用例。如果您需要控制使用哪个持久性层,请使用 initializeAuth
;如果您不使用 signInWithPopup
或 signInWithRedirect
,则应尽量减小软件包大小。
例如,如果您的应用仅使用匿名帐号,而您只想为当前会话保存帐号,请使用以下代码初始化 Auth
:
const auth = initializeAuth(app, {
persistence: browserSessionPersistence,
popupRedirectResolver: undefined,
});
签名:
export declare function initializeAuth(app: FirebaseApp, deps?: Dependencies): Auth;
参数
参数 | 类型 | 说明 |
---|---|---|
app | FirebaseApp | |
依赖项 | 依赖项 |
返回:
function(storage, ...)
getReactNativePersistence(storage)
返回一个持久性对象,该对象封装了从 react-native
或 @react-native-community/async-storage
导入的 AsyncStorage
,并可在 initializeAuth() 中的持久性依赖项字段中使用。
签名:
export declare function getReactNativePersistence(storage: ReactNativeAsyncStorage): Persistence;
参数
参数 | 类型 | 说明 |
---|---|---|
存储 | ReactNativeAsyncStorage |
返回:
function(auth, ...)
applyActionCode(auth, oobCode)
应用通过电子邮件或其他带外机制向用户发送的验证码。
签名:
export declare function applyActionCode(auth: Auth, oobCode: string): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
oobCode | string | 系统向用户发送的验证码。 |
返回:
Promise<void>
beforeAuthStateChanged(auth, callback, onAbort)
添加在身份验证状态更改设置新用户之前运行的阻塞回调。
签名:
export declare function beforeAuthStateChanged(auth: Auth, callback: (user: User | null) => void | Promise<void>, onAbort?: () => void): Unsubscribe;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
callback | (用户:User | null)=> void | Promise<void> | 回调函数。如果抛出该异常,则会阻止设置用户。 |
onAbort | () => 无效 | 回调触发,从而允许您撤消任何附带效应。beforeAuthStateChanged() |
返回:
checkActionCode(auth, oobCode)
检查通过电子邮件或其他带外机制发送给用户的验证码。
签名:
export declare function checkActionCode(auth: Auth, oobCode: string): Promise<ActionCodeInfo>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
oobCode | string | 系统向用户发送的验证码。 |
返回:
Promise<ActionCodeInfo>
有关代码的元数据。
ConfirmPasswordReset(auth, oobCode, newPassword)
根据一个确认码和新密码,完成密码重置过程。
签名:
export declare function confirmPasswordReset(auth: Auth, oobCode: string, newPassword: string): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
oobCode | string | 向用户发送的确认码。 |
newPassword | string | 新密码。 |
返回:
Promise<void>
connectAuthEmulator(auth, url, options)
更改 Auth 实例,以便与 Firebase Auth 模拟器(而不是生产环境中的 Firebase Auth 服务)通信。
必须在第一次调用 initializeAuth() 后立即同步调用此方法。请勿使用生产凭据,因为模拟器流量未加密。
签名:
export declare function connectAuthEmulator(auth: Auth, url: string, options?: {
disableWarnings: boolean;
}): void;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
网址 | string | 运行模拟器的网址(例如“http://localhost:9099”)。 |
选项 | { disableWarnings: boolean; } | 可选。options.disableWarnings 默认为 false 。将其设置为 true 可停用附加到 DOM 的警告横幅。 |
返回:
void
示例
connectAuthEmulator(auth, 'http://127.0.0.1:9099', { disableWarnings: true });
createUserWithEmailAndPassword(auth, email, password)
创建与指定电子邮件地址和密码关联的新用户账号。
成功创建用户账号后,该用户也会登录到您的应用。
如果帐号已存在或密码无效,则创建用户帐号可能会失败。
使用 FirebaseServerApp 创建的 Auth 实例不支持此方法。
签名:
export declare function createUserWithEmailAndPassword(auth: Auth, email: string, password: string): Promise<UserCredential>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
电子邮件地址 | string | 用户的电子邮件地址。 |
密码 | string | 用户选择的密码。 |
返回:
Promise<UserCredential>
fetchSignInMethodsForEmail(auth, email)
获取指定电子邮件地址的可能登录方法列表。启用电子邮件枚举保护后,无论指定电子邮件地址有多少种身份验证方法,此方法都会返回一个空列表。
这有助于区分同一提供方的登录方法,例如EmailAuthProvider,包含 2 种登录方法:SignInMethod.EMAIL_PASSWORD 和 SignInMethod.EMAIL_LINK。
签名:
export declare function fetchSignInMethodsForEmail(auth: Auth, email: string): Promise<string[]>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
电子邮件地址 | string | 用户的电子邮件地址。已弃用。作为安全最佳实践,建议从此方法进行迁移。如需了解详情,请参阅有关电子邮件枚举保护的 Identity Platform 文档。 |
返回:
Promise<string[]>
getMultiFactorResolver(auth, error)
提供适合完成多重身份验证流程的 MultiFactorResolver。
签名:
export declare function getMultiFactorResolver(auth: Auth, error: MultiFactorError): MultiFactorResolver;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
error | MultiFactorError | 在登录或重新进行身份验证操作期间引发的 MultiFactorError。 |
返回:
getRedirectResult(auth, resolver)
从基于重定向的登录流程返回 UserCredential。
如果登录成功,则返回已登录的用户。如果登录失败,则会失败并显示错误。如果未调用重定向操作,则返回 null
。
此方法不适用于 Node.js 环境,也不适用于使用 FirebaseServerApp 创建的 Auth 实例。
签名:
export declare function getRedirectResult(auth: Auth, resolver?: PopupRedirectResolver): Promise<UserCredential | null>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的一个实例,如果已提供给 initializeAuth() 或已由 getAuth() 提供,则该实例是可选的。 |
返回:
Promise<UserCredential | null>
示例
// Sign in using a redirect.
const provider = new FacebookAuthProvider();
// You can add additional scopes to the provider:
provider.addScope('user_birthday');
// Start a sign in process for an unauthenticated user.
await signInWithRedirect(auth, provider);
// This will trigger a full page redirect away from your app
// After returning from the redirect when your app initializes you can obtain the result
const result = await getRedirectResult(auth);
if (result) {
// This is the signed-in user
const user = result.user;
// This gives you a Facebook Access Token.
const credential = provider.credentialFromResult(auth, result);
const token = credential.accessToken;
}
// As this API can be used for sign-in, linking and reauthentication,
// check the operationType to determine what triggered this redirect
// operation.
const operationType = result.operationType;
initializeRecaptchaConfig(auth)
将 reCAPTCHA 配置加载到 Auth
实例中。
这会将 reCAPTCHA 配置加载到当前的 Auth 会话中,该配置用于指明是否应为每个身份验证提供方触发 reCAPTCHA 验证流程。
如果未调用 initializeRecaptchaConfig(),则身份验证流程将始终在未进行 reCAPTCHA 验证的情况下启动。如果提供方配置为需要 reCAPTCHA 验证,SDK 将以透明方式加载 reCAPTCHA 配置并重启身份验证流程。
因此,通过调用此可选方法,您可以减少未来身份验证流程的延迟时间。尽早加载 reCAPTCHA 配置还将增强 reCAPTCHA 收集的信号。
此方法不适用于 Node.js 环境。
签名:
export declare function initializeRecaptchaConfig(auth: Auth): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
返回:
Promise<void>
示例
initializeRecaptchaConfig(auth);
isSignInWithEmailLink(auth, emailLink)
检查传入的链接是否是具有适用于 signInWithEmailLink() 的电子邮件链接的登录。
签名:
export declare function isSignInWithEmailLink(auth: Auth, emailLink: string): boolean;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
电子邮件链接 | string | 发送到用户的电子邮件地址的链接。 |
返回:
boolean
onAuthStateChanged(auth, nextOrObserver, 错误, 已完成)
为用户登录状态的更改添加观察器。
如需保留旧行为,请参阅 onIdTokenChanged()。
签名:
export declare function onAuthStateChanged(auth: Auth, nextOrObserver: NextOrObserver<User>, error?: ErrorFn, completed?: CompleteFn): Unsubscribe;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
nextOrObserver | NextOrObserver<用户> | 回调时触发。 |
error | ErrorFn | 已弃用。此回调绝不会触发。从登录/退出函数返回的 promise 中可能会捕获登录/退出错误。 |
已完成 | CompleteFn | 已弃用。此回调绝不会触发。 |
返回:
onIdTokenChanged(auth, nextOrObserver, 错误, 已完成)
为已登录用户的 ID 令牌的更改添加观察者。
包括登录、退出和令牌刷新事件。ID 令牌过期后,系统不会自动触发此操作。使用 User.getIdToken() 刷新 ID 令牌。
签名:
export declare function onIdTokenChanged(auth: Auth, nextOrObserver: NextOrObserver<User>, error?: ErrorFn, completed?: CompleteFn): Unsubscribe;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
nextOrObserver | NextOrObserver<用户> | 回调时触发。 |
error | ErrorFn | 已弃用。此回调绝不会触发。从登录/退出函数返回的 promise 中可能会捕获登录/退出错误。 |
已完成 | CompleteFn | 已弃用。此回调绝不会触发。 |
返回:
revokeAccessToken(auth, token)
撤消指定的访问令牌。目前仅支持 Apple OAuth 访问令牌。
签名:
export declare function revokeAccessToken(auth: Auth, token: string): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
token | string | Apple OAuth 访问令牌。 |
返回:
Promise<void>
sendPasswordResetEmail(auth, email, actionCodeSettings)
向指定的电子邮件地址发送重设密码电子邮件。如果不存在使用指定电子邮件地址的用户帐号,并且启用了电子邮件枚举保护,此方法不会抛出错误。
要完成密码重置,请使用发送给用户的电子邮件中提供的代码和用户指定的新密码调用 confirmPasswordReset()。
签名:
export declare function sendPasswordResetEmail(auth: Auth, email: string, actionCodeSettings?: ActionCodeSettings): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
电子邮件地址 | string | 用户的电子邮件地址。 |
操作代码设置 | ActionCodeSettings | ActionCodeSettings。 |
返回:
Promise<void>
示例
const actionCodeSettings = {
url: 'https://www.example.com/?email=user@example.com',
iOS: {
bundleId: 'com.example.ios'
},
android: {
packageName: 'com.example.android',
installApp: true,
minimumVersion: '12'
},
handleCodeInApp: true
};
await sendPasswordResetEmail(auth, 'user@example.com', actionCodeSettings);
// Obtain code from user.
await confirmPasswordReset('user@example.com', code);
sendSignInLinkToEmail(auth, email, actionCodeSettings)
向使用指定电子邮件地址的用户发送登录电子邮件链接。
与其他带外电子邮件操作(密码重置和电子邮件验证)不同,登录操作必须始终在应用中完成。这是因为按照预期,在流程结束时用户应该已经登录,并且他们的身份验证状态应在应用内持久保存。
要使用电子邮件链接完成登录,请使用发送给用户的电子邮件中提供的电子邮件地址和电子邮件链接调用 signInWithEmailLink()。
签名:
export declare function sendSignInLinkToEmail(auth: Auth, email: string, actionCodeSettings: ActionCodeSettings): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | |
电子邮件地址 | string | 用户的电子邮件地址。 |
操作代码设置 | ActionCodeSettings | ActionCodeSettings。 |
返回:
Promise<void>
示例
const actionCodeSettings = {
url: 'https://www.example.com/?email=user@example.com',
iOS: {
bundleId: 'com.example.ios'
},
android: {
packageName: 'com.example.android',
installApp: true,
minimumVersion: '12'
},
handleCodeInApp: true
};
await sendSignInLinkToEmail(auth, 'user@example.com', actionCodeSettings);
// Obtain emailLink from the user.
if(isSignInWithEmailLink(auth, emailLink)) {
await signInWithEmailLink(auth, 'user@example.com', emailLink);
}
setPersistence(身份验证、持久性)
针对当前保存的 Auth
会话更改 Auth 实例上的保留类型,并对将来的登录请求(包括使用重定向请求登录)应用这种保留类型。
这方便登录的用户指定是否应记住其会话。此外,对于由其他用户共享或包含敏感数据的应用,这也让永远不会保留 Auth
状态。
此方法不适用于 Node.js 环境,也不适用于使用 FirebaseServerApp 创建的 Auth 实例。
签名:
export declare function setPersistence(auth: Auth, persistence: Persistence): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
持久性, | 持久性 | 要使用的持久性。 |
返回:
Promise<void>
一个在持久性更改完成后解析的 Promise
示例
setPersistence(auth, browserSessionPersistence);
匿名登录(身份验证)
以匿名用户的身份异步登录。
如果已有匿名用户登录,则返回该用户;否则,系统会创建并返回一个新的匿名用户身份。
使用 FirebaseServerApp 创建的 Auth 实例不支持此方法。
签名:
export declare function signInAnonymously(auth: Auth): Promise<UserCredential>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
返回:
Promise<UserCredential>
signInWithCredential(auth, credential)
使用给定的凭据异步登录。
AuthProvider 可用于生成凭据。
使用 FirebaseServerApp 创建的 Auth 实例不支持此方法。
签名:
export declare function signInWithCredential(auth: Auth, credential: AuthCredential): Promise<UserCredential>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
凭据 | AuthCredential | 身份验证凭据。 |
返回:
Promise<UserCredential>
signInWithCustomToken(auth, customToken)
使用自定义令牌异步登录。
自定义令牌用于将 Firebase Auth 与现有身份验证系统集成,并且必须由身份验证后端使用 Admin SDK 中的 createCustomToken 方法生成。
如果令牌无效、已过期或 Firebase Auth 服务未接受令牌,则会失败并返回错误。
使用 FirebaseServerApp 创建的 Auth 实例不支持此方法。
签名:
export declare function signInWithCustomToken(auth: Auth, customToken: string): Promise<UserCredential>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
customToken [自定义令牌] | string | 用于登录的自定义令牌。 |
返回:
Promise<UserCredential>
signInWithEmailAndPassword(auth, email, password)
使用电子邮件地址和密码异步登录。
如果电子邮件地址和密码不匹配,则会失败并显示错误。启用电子邮件枚举保护后,如果电子邮件地址/密码无效,此方法将失败并显示“auth/invalid-credential”。
使用 FirebaseServerApp 创建的 Auth 实例不支持此方法。
签名:
export declare function signInWithEmailAndPassword(auth: Auth, email: string, password: string): Promise<UserCredential>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
电子邮件地址 | string | 用户的电子邮件地址。 |
密码 | string | 用户密码。 |
返回:
Promise<UserCredential>
signInWithEmailLink(auth, email, emailLink)
使用电子邮件地址和登录电子邮件链接异步登录。
如果未传递任何链接,系统会根据当前网址推断出该链接。
如果电子邮件地址无效或电子邮件链接中的动态密码过期,则会失败并出现错误。
使用 FirebaseServerApp 创建的 Auth 实例不支持此方法。
签名:
export declare function signInWithEmailLink(auth: Auth, email: string, emailLink?: string): Promise<UserCredential>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
电子邮件地址 | string | 用户的电子邮件地址。 |
电子邮件链接 | string | 发送到用户的电子邮件地址的链接。 |
返回:
Promise<UserCredential>
示例
const actionCodeSettings = {
url: 'https://www.example.com/?email=user@example.com',
iOS: {
bundleId: 'com.example.ios'
},
android: {
packageName: 'com.example.android',
installApp: true,
minimumVersion: '12'
},
handleCodeInApp: true
};
await sendSignInLinkToEmail(auth, 'user@example.com', actionCodeSettings);
// Obtain emailLink from the user.
if(isSignInWithEmailLink(auth, emailLink)) {
await signInWithEmailLink(auth, 'user@example.com', emailLink);
}
signInWithPhoneNumber(auth, phoneNumber, appVerifier)
使用电话号码异步登录。
此方法会通过短信向指定的电话号码发送一个验证码,并返回 ConfirmationResult。用户提供发送到其手机的验证码后,调用 ConfirmationResult.confirm() 并提供该验证码,让用户登录。
为防止滥用,此方法还需要 ApplicationVerifier。此 SDK 包含基于 reCAPTCHA 的实现 RecaptchaVerifier。此函数可以在不支持 RecaptchaVerifier 的其他平台(如 React Native)上运行,但您需要使用第三方 ApplicationVerifier 实现。
此方法不适用于 Node.js 环境,也不适用于使用 FirebaseServerApp 创建的 Auth 实例。
签名:
export declare function signInWithPhoneNumber(auth: Auth, phoneNumber: string, appVerifier: ApplicationVerifier): Promise<ConfirmationResult>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
电话号码 | string | 用户的电话号码,采用 E.164 格式(例如 +16505550101)。 |
appVerifier | ApplicationVerifier | ApplicationVerifier。 |
返回:
Promise<ConfirmationResult>
示例
// 'recaptcha-container' is the ID of an element in the DOM.
const applicationVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');
const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
// Obtain a verificationCode from the user.
const credential = await confirmationResult.confirm(verificationCode);
signInWithPopup(auth, provider, resolver)
使用基于弹出式窗口的 OAuth 身份验证流程对 Firebase 客户端进行身份验证。
如果成功,则返回已登录的用户以及提供方的凭据。如果登录失败,则会返回一个错误对象,其中包含有关该错误的更多信息。
此方法不适用于 Node.js 环境,也不适用于使用 FirebaseServerApp 创建的 Auth 实例。
签名:
export declare function signInWithPopup(auth: Auth, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<UserCredential>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
提供方 | AuthProvider | 要进行身份验证的提供方。提供方必须是 OAuthProvider。非 OAuth 提供方(如 EmailAuthProvider)将抛出错误。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的一个实例,如果已提供给 initializeAuth() 或已由 getAuth() 提供,则该实例是可选的。 |
返回:
Promise<UserCredential>
示例
// Sign in using a popup.
const provider = new FacebookAuthProvider();
const result = await signInWithPopup(auth, provider);
// The signed-in user info.
const user = result.user;
// This gives you a Facebook Access Token.
const credential = provider.credentialFromResult(auth, result);
const token = credential.accessToken;
signInWithRedirect(auth, provider, resolver)
使用整页重定向流程对 Firebase 客户端进行身份验证。
如要处理此操作的结果和错误,请参阅 getRedirectResult()。使用 signInWithRedirect() 时,请遵循最佳实践。
此方法不适用于 Node.js 环境,也不适用于使用 FirebaseServerApp 创建的 Auth 实例。
签名:
export declare function signInWithRedirect(auth: Auth, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<never>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
提供方 | AuthProvider | 要进行身份验证的提供方。提供方必须是 OAuthProvider。非 OAuth 提供方(如 EmailAuthProvider)将抛出错误。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的一个实例,如果已提供给 initializeAuth() 或已由 getAuth() 提供,则该实例是可选的。 |
返回:
Promise<never>
示例
// Sign in using a redirect.
const provider = new FacebookAuthProvider();
// You can add additional scopes to the provider:
provider.addScope('user_birthday');
// Start a sign in process for an unauthenticated user.
await signInWithRedirect(auth, provider);
// This will trigger a full page redirect away from your app
// After returning from the redirect when your app initializes you can obtain the result
const result = await getRedirectResult(auth);
if (result) {
// This is the signed-in user
const user = result.user;
// This gives you a Facebook Access Token.
const credential = provider.credentialFromResult(auth, result);
const token = credential.accessToken;
}
// As this API can be used for sign-in, linking and reauthentication,
// check the operationType to determine what triggered this redirect
// operation.
const operationType = result.operationType;
退出(身份验证)
退出当前用户账号。
使用 FirebaseServerApp 创建的 Auth 实例不支持此方法。
签名:
export declare function signOut(auth: Auth): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
返回:
Promise<void>
updateCurrentUser(auth, user)
在 Auth 实例上将提供的用户异步设置为 Auth.currentUser。
系统将创建该用户的新实例副本,并将其设置为 currentUser。
与其他登录方法一样,这将触发 onAuthStateChanged() 和 onIdTokenChanged() 监听器。
如果要更新的用户属于其他 Firebase 项目,操作将失败并报错。
使用 FirebaseServerApp 创建的 Auth 实例不支持此方法。
签名:
export declare function updateCurrentUser(auth: Auth, user: User | null): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
用户 | 用户 | null | 新的 User。 |
返回:
Promise<void>
useDeviceLanguage(auth)
将当前语言设置为默认设备/浏览器偏好设置。
签名:
export declare function useDeviceLanguage(auth: Auth): void;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
返回:
void
VerifyPassword(身份验证, 密码)
根据为项目或租户配置的密码政策验证密码。
如果 Auth
实例上未设置租户 ID,则此方法将使用为项目配置的密码政策。否则,此方法将使用为租户配置的政策。如果未配置密码政策,系统将使用为所有项目配置的默认政策。
如果身份验证流程因提交的密码不符合密码政策要求而失败,并且之前已调用此方法,则再次调用时,此方法将使用可用的最新政策。
签名:
export declare function validatePassword(auth: Auth, password: string): Promise<PasswordValidationStatus>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
密码 | string | 要验证的密码。 |
返回:
Promise<PasswordValidationStatus>
示例
validatePassword(auth, 'some-password');
verifyPasswordResetCode(auth, code)
检查通过电子邮件或其他带外机制发送给用户的密码重置代码。
签名:
export declare function verifyPasswordResetCode(auth: Auth, code: string): Promise<string>;
参数
参数 | 类型 | 说明 |
---|---|---|
auth | 身份验证 | Auth 实例。 |
代码 | string | 系统向用户发送的验证码。 |
返回:
Promise<string>
用户的电子邮件地址(如果有效)。
function(link, ...)
parseActionCode网址(链接)
解析电子邮件操作链接字符串,如果链接有效,则返回 ActionCode网址,否则返回 null。
签名:
export declare function parseActionCodeURL(link: string): ActionCodeURL | null;
参数
参数 | 类型 | 说明 |
---|---|---|
链接 | string |
返回:
ActionCode网址 | null
function(user, ...)
deleteUser(用户)
删除用户并退出帐号。
签名:
export declare function deleteUser(user: User): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
返回:
Promise<void>
getIdToken(user, forceRefresh)
返回用于向 Firebase 服务标识用户的 JSON Web 令牌 (JWT)。
如果当前令牌未过期或在接下来的五分钟内不会过期,则返回当前令牌。否则,系统将刷新令牌并返回一个新令牌。
签名:
export declare function getIdToken(user: User, forceRefresh?: boolean): Promise<string>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
强制刷新 | boolean | 强制刷新,不考虑令牌过期。 |
返回:
Promise<string>
getIdTokenResult(user, forceRefresh)
返回用于向 Firebase 服务识别用户身份的反序列化 JSON 网络令牌 (JWT)。
如果当前令牌未过期或在接下来的五分钟内不会过期,则返回当前令牌。否则,系统将刷新令牌并返回一个新令牌。
签名:
export declare function getIdTokenResult(user: User, forceRefresh?: boolean): Promise<IdTokenResult>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
强制刷新 | boolean | 强制刷新,不考虑令牌过期。 |
返回:
Promise<IdTokenResult>
linkWithCredential(user, credential)
将用户帐号与给定凭据相关联。
AuthProvider 可用于生成凭据。
签名:
export declare function linkWithCredential(user: User, credential: AuthCredential): Promise<UserCredential>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
凭据 | AuthCredential | 身份验证凭据。 |
返回:
Promise<UserCredential>
linkWithPhoneNumber(user, phoneNumber, appVerifier)
将用户帐号与给定的电话号码相关联。
此方法不适用于 Node.js 环境。
签名:
export declare function linkWithPhoneNumber(user: User, phoneNumber: string, appVerifier: ApplicationVerifier): Promise<ConfirmationResult>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
电话号码 | string | 用户的电话号码,采用 E.164 格式(例如 +16505550101)。 |
appVerifier | ApplicationVerifier | ApplicationVerifier。 |
返回:
Promise<ConfirmationResult>
linkWithPopup(user, provider, resolver)
使用基于弹出式窗口的 OAuth 流程,将经过身份验证的提供方与用户帐号相关联。
如果关联成功,返回的结果将包含用户和提供方的凭据。
此方法不适用于 Node.js 环境。
签名:
export declare function linkWithPopup(user: User, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<UserCredential>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
提供方 | AuthProvider | 要进行身份验证的提供方。提供方必须是 OAuthProvider。非 OAuth 提供方(如 EmailAuthProvider)将抛出错误。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的一个实例,如果已提供给 initializeAuth() 或已由 getAuth() 提供,则该实例是可选的。 |
返回:
Promise<UserCredential>
示例
// Sign in using some other provider.
const result = await signInWithEmailAndPassword(auth, email, password);
// Link using a popup.
const provider = new FacebookAuthProvider();
await linkWithPopup(result.user, provider);
linkWithRedirect(用户, provider, 解析器)
使用整页重定向流程将 OAuthProvider 关联到用户帐号。
如要处理此操作的结果和错误,请参阅 getRedirectResult()。使用 linkWithRedirect() 时,请遵循最佳实践。
此方法不适用于 Node.js 环境,也不适用于使用 FirebaseServerApp 创建的 Auth 实例。
签名:
export declare function linkWithRedirect(user: User, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<never>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
提供方 | AuthProvider | 要进行身份验证的提供方。提供方必须是 OAuthProvider。非 OAuth 提供方(如 EmailAuthProvider)将抛出错误。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的一个实例,如果已提供给 initializeAuth() 或已由 getAuth() 提供,则该实例是可选的。 |
返回:
Promise<never>
示例
// Sign in using some other provider.
const result = await signInWithEmailAndPassword(auth, email, password);
// Link using a redirect.
const provider = new FacebookAuthProvider();
await linkWithRedirect(result.user, provider);
// This will trigger a full page redirect away from your app
// After returning from the redirect when your app initializes you can obtain the result
const result = await getRedirectResult(auth);
多重因素(用户)
与用户对应的 MultiFactorUser。
这用于访问与用户相关的所有多重属性和操作。
签名:
export declare function multiFactor(user: User): MultiFactorUser;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
返回:
reauthenticateWithCredential(user, credential)
使用新凭据重新对用户进行身份验证。
在需要近期登录尝试中的令牌的操作(例如 updatePassword())之前使用。此方法可用于从 CREDENTIAL_TOO_OLD_LOGIN_AGAIN
错误或 TOKEN_EXPIRED
错误中恢复。
使用 FirebaseServerApp 创建的 Auth 实例登录的任何 User 均不支持此方法。
签名:
export declare function reauthenticateWithCredential(user: User, credential: AuthCredential): Promise<UserCredential>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
凭据 | AuthCredential | 身份验证凭据。 |
返回:
Promise<UserCredential>
reauthenticateWithPhoneNumber(user, phoneNumber, appVerifier)
使用新的电话凭据重新对用户进行身份验证。
在需要近期登录尝试中的令牌的操作(例如 updatePassword())之前使用。
此方法不适用于 Node.js 环境,也不适用于通过 FirebaseServerApp 创建的 Auth 实例登录的任何 User。
签名:
export declare function reauthenticateWithPhoneNumber(user: User, phoneNumber: string, appVerifier: ApplicationVerifier): Promise<ConfirmationResult>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
电话号码 | string | 用户的电话号码,采用 E.164 格式(例如 +16505550101)。 |
appVerifier | ApplicationVerifier | ApplicationVerifier。 |
返回:
Promise<ConfirmationResult>
reauthenticateWithPopup(user, provider, resolver)
使用基于弹出式窗口的 OAuth 流程,通过指定的 OAuthProvider 重新验证当前用户。
如果重新进行身份验证成功,返回的结果将包含用户和提供方的凭据。
此方法不适用于 Node.js 环境,也不适用于通过 FirebaseServerApp 创建的 Auth 实例登录的任何 User。
签名:
export declare function reauthenticateWithPopup(user: User, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<UserCredential>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
提供方 | AuthProvider | 要进行身份验证的提供方。提供方必须是 OAuthProvider。非 OAuth 提供方(如 EmailAuthProvider)将抛出错误。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的一个实例,如果已提供给 initializeAuth() 或已由 getAuth() 提供,则该实例是可选的。 |
返回:
Promise<UserCredential>
示例
// Sign in using a popup.
const provider = new FacebookAuthProvider();
const result = await signInWithPopup(auth, provider);
// Reauthenticate using a popup.
await reauthenticateWithPopup(result.user, provider);
reauthenticateWithRedirect(用户, provider, resolver)
通过整页重定向流程通过指定的 OAuthProvider 对当前用户重新进行身份验证。
如要处理此操作的结果和错误,请参阅 getRedirectResult()。使用 reauthenticateWithRedirect() 时,请遵循最佳实践。
此方法不适用于 Node.js 环境,也不适用于使用 FirebaseServerApp 创建的 Auth 实例。
签名:
export declare function reauthenticateWithRedirect(user: User, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<never>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
提供方 | AuthProvider | 要进行身份验证的提供方。提供方必须是 OAuthProvider。非 OAuth 提供方(如 EmailAuthProvider)将抛出错误。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的一个实例,如果已提供给 initializeAuth() 或已由 getAuth() 提供,则该实例是可选的。 |
返回:
Promise<never>
示例
// Sign in using a redirect.
const provider = new FacebookAuthProvider();
const result = await signInWithRedirect(auth, provider);
// This will trigger a full page redirect away from your app
// After returning from the redirect when your app initializes you can obtain the result
const result = await getRedirectResult(auth);
// Reauthenticate using a redirect.
await reauthenticateWithRedirect(result.user, provider);
// This will again trigger a full page redirect away from your app
// After returning from the redirect when your app initializes you can obtain the result
const result = await getRedirectResult(auth);
重新加载(用户)
重新加载用户帐号数据(如果已登录)。
签名:
export declare function reload(user: User): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
返回:
Promise<void>
sendEmailVerification(user, actionCodeSettings)
向用户发送验证邮件。
通过调用 applyActionCode() 完成验证流程。
签名:
export declare function sendEmailVerification(user: User, actionCodeSettings?: ActionCodeSettings | null): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
操作代码设置 | ActionCodeSettings | null | ActionCodeSettings。 |
返回:
Promise<void>
示例
const actionCodeSettings = {
url: 'https://www.example.com/?email=user@example.com',
iOS: {
bundleId: 'com.example.ios'
},
android: {
packageName: 'com.example.android',
installApp: true,
minimumVersion: '12'
},
handleCodeInApp: true
};
await sendEmailVerification(user, actionCodeSettings);
// Obtain code from the user.
await applyActionCode(auth, code);
解除关联(user, providerId)
解除提供方与用户帐号的关联。
签名:
export declare function unlink(user: User, providerId: string): Promise<User>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
providerId | string | 解除关联的提供商。 |
返回:
Promise<User>
updateEmail(user, newEmail)
更新用户的电子邮件地址。
系统会向原始电子邮件地址发送一封电子邮件(如果已设置),从而撤消电子邮件地址更改,以防帐号被盗用。
使用 FirebaseServerApp 创建的 Auth 实例登录的任何 User 均不支持此方法。
签名:
export declare function updateEmail(user: User, newEmail: string): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
新电子邮件 | string | 新的电子邮件地址。启用电子邮件枚举保护后会抛出“auth/operation-not-allowed”错误。已弃用 - 请改用 verifyBeforeUpdateEmail()。 |
返回:
Promise<void>
updatePassword(user, newPassword)
更新用户的密码。
签名:
export declare function updatePassword(user: User, newPassword: string): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
newPassword | string | 新密码。 |
返回:
Promise<void>
updatePhoneNumber(user, credential)
更新用户的电话号码。
此方法不适用于 Node.js 环境,也不适用于通过 FirebaseServerApp 创建的 Auth 实例登录的任何 User。
签名:
export declare function updatePhoneNumber(user: User, credential: PhoneAuthCredential): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
凭据 | PhoneAuthCredential | 对新电话号码进行身份验证的凭据。 |
返回:
Promise<void>
示例
// 'recaptcha-container' is the ID of an element in the DOM.
const applicationVerifier = new RecaptchaVerifier('recaptcha-container');
const provider = new PhoneAuthProvider(auth);
const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);
// Obtain the verificationCode from the user.
const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
await updatePhoneNumber(user, phoneCredential);
updateProfile(user, { displayName, photo网址: photoUrl })
更新用户的个人资料数据。
签名:
export declare function updateProfile(user: User, { displayName, photoURL: photoUrl }: {
displayName?: string | null;
photoURL?: string | null;
}): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
{ displayName, photo网址: photoUrl } | { displayName?: string | null; photo网址?: string | null; } |
返回:
Promise<void>
verifyBeforeUpdateEmail(user, newEmail, actionCodeSettings)
向新的电子邮件地址发送验证邮件。
用户的电子邮件经过验证后将更新为新电子邮件地址。
如果您有自定义电子邮件操作处理程序,可以通过调用 applyActionCode() 完成验证流程。
签名:
export declare function verifyBeforeUpdateEmail(user: User, newEmail: string, actionCodeSettings?: ActionCodeSettings | null): Promise<void>;
参数
参数 | 类型 | 说明 |
---|---|---|
用户 | User | 用户。 |
新电子邮件 | string | 要在更新前进行验证的新电子邮件地址。 |
操作代码设置 | ActionCodeSettings | null | ActionCodeSettings。 |
返回:
Promise<void>
示例
const actionCodeSettings = {
url: 'https://www.example.com/?email=user@example.com',
iOS: {
bundleId: 'com.example.ios'
},
android: {
packageName: 'com.example.android',
installApp: true,
minimumVersion: '12'
},
handleCodeInApp: true
};
await verifyBeforeUpdateEmail(user, 'newemail@example.com', actionCodeSettings);
// Obtain code from the user.
await applyActionCode(auth, code);
function(userCredential, ...)
getAdditionalUserInfo(userCredential)
提取给定凭据的提供方专属 AdditionalUserInfo。
签名:
export declare function getAdditionalUserInfo(userCredential: UserCredential): AdditionalUserInfo | null;
参数
参数 | 类型 | 说明 |
---|---|---|
用户凭据 | UserCredential | 用户凭据。 |
返回:
AdditionalUserInfo | null
ActionCodeOperation
枚举可能的电子邮件操作类型。
签名:
ActionCodeOperation: {
readonly EMAIL_SIGNIN: "EMAIL_SIGNIN";
readonly PASSWORD_RESET: "PASSWORD_RESET";
readonly RECOVER_EMAIL: "RECOVER_EMAIL";
readonly REVERT_SECOND_FACTOR_ADDITION: "REVERT_SECOND_FACTOR_ADDITION";
readonly VERIFY_AND_CHANGE_EMAIL: "VERIFY_AND_CHANGE_EMAIL";
readonly VERIFY_EMAIL: "VERIFY_EMAIL";
}
AuthErrorCodes
潜在 Auth
错误代码的映射,用于更轻松地与 SDK 抛出的错误进行比较。
请注意,您无法对映射中的单个键进行摇树优化,因此使用映射可能会大幅增加 bundle 的大小。
签名:
AUTH_ERROR_CODES_MAP_DO_NOT_USE_INTERNALLY: {
readonly ADMIN_ONLY_OPERATION: "auth/admin-restricted-operation";
readonly ARGUMENT_ERROR: "auth/argument-error";
readonly APP_NOT_AUTHORIZED: "auth/app-not-authorized";
readonly APP_NOT_INSTALLED: "auth/app-not-installed";
readonly CAPTCHA_CHECK_FAILED: "auth/captcha-check-failed";
readonly CODE_EXPIRED: "auth/code-expired";
readonly CORDOVA_NOT_READY: "auth/cordova-not-ready";
readonly CORS_UNSUPPORTED: "auth/cors-unsupported";
readonly CREDENTIAL_ALREADY_IN_USE: "auth/credential-already-in-use";
readonly CREDENTIAL_MISMATCH: "auth/custom-token-mismatch";
readonly CREDENTIAL_TOO_OLD_LOGIN_AGAIN: "auth/requires-recent-login";
readonly DEPENDENT_SDK_INIT_BEFORE_AUTH: "auth/dependent-sdk-initialized-before-auth";
readonly DYNAMIC_LINK_NOT_ACTIVATED: "auth/dynamic-link-not-activated";
readonly EMAIL_CHANGE_NEEDS_VERIFICATION: "auth/email-change-needs-verification";
readonly EMAIL_EXISTS: "auth/email-already-in-use";
readonly EMULATOR_CONFIG_FAILED: "auth/emulator-config-failed";
readonly EXPIRED_OOB_CODE: "auth/expired-action-code";
readonly EXPIRED_POPUP_REQUEST: "auth/cancelled-popup-request";
readonly INTERNAL_ERROR: "auth/internal-error";
readonly INVALID_API_KEY: "auth/invalid-api-key";
readonly INVALID_APP_CREDENTIAL: "auth/invalid-app-credential";
readonly INVALID_APP_ID: "auth/invalid-app-id";
readonly INVALID_AUTH: "auth/invalid-user-token";
readonly INVALID_AUTH_EVENT: "auth/invalid-auth-event";
readonly INVALID_CERT_HASH: "auth/invalid-cert-hash";
readonly INVALID_CODE: "auth/invalid-verification-code";
readonly INVALID_CONTINUE_URI: "auth/invalid-continue-uri";
readonly INVALID_CORDOVA_CONFIGURATION: "auth/invalid-cordova-configuration";
readonly INVALID_CUSTOM_TOKEN: "auth/invalid-custom-token";
readonly INVALID_DYNAMIC_LINK_DOMAIN: "auth/invalid-dynamic-link-domain";
readonly INVALID_EMAIL: "auth/invalid-email";
readonly INVALID_EMULATOR_SCHEME: "auth/invalid-emulator-scheme";
readonly INVALID_IDP_RESPONSE: "auth/invalid-credential";
readonly INVALID_LOGIN_CREDENTIALS: "auth/invalid-credential";
readonly INVALID_MESSAGE_PAYLOAD: "auth/invalid-message-payload";
readonly INVALID_MFA_SESSION: "auth/invalid-multi-factor-session";
readonly INVALID_OAUTH_CLIENT_ID: "auth/invalid-oauth-client-id";
readonly INVALID_OAUTH_PROVIDER: "auth/invalid-oauth-provider";
readonly INVALID_OOB_CODE: "auth/invalid-action-code";
readonly INVALID_ORIGIN: "auth/unauthorized-domain";
readonly INVALID_PASSWORD: "auth/wrong-password";
readonly INVALID_PERSISTENCE: "auth/invalid-persistence-type";
readonly INVALID_PHONE_NUMBER: "auth/invalid-phone-number";
readonly INVALID_PROVIDER_ID: "auth/invalid-provider-id";
readonly INVALID_RECIPIENT_EMAIL: "auth/invalid-recipient-email";
readonly INVALID_SENDER: "auth/invalid-sender";
readonly INVALID_SESSION_INFO: "auth/invalid-verification-id";
readonly INVALID_TENANT_ID: "auth/invalid-tenant-id";
readonly MFA_INFO_NOT_FOUND: "auth/multi-factor-info-not-found";
readonly MFA_REQUIRED: "auth/multi-factor-auth-required";
readonly MISSING_ANDROID_PACKAGE_NAME: "auth/missing-android-pkg-name";
readonly MISSING_APP_CREDENTIAL: "auth/missing-app-credential";
readonly MISSING_AUTH_DOMAIN: "auth/auth-domain-config-required";
readonly MISSING_CODE: "auth/missing-verification-code";
readonly MISSING_CONTINUE_URI: "auth/missing-continue-uri";
readonly MISSING_IFRAME_START: "auth/missing-iframe-start";
readonly MISSING_IOS_BUNDLE_ID: "auth/missing-ios-bundle-id";
readonly MISSING_OR_INVALID_NONCE: "auth/missing-or-invalid-nonce";
readonly MISSING_MFA_INFO: "auth/missing-multi-factor-info";
readonly MISSING_MFA_SESSION: "auth/missing-multi-factor-session";
readonly MISSING_PHONE_NUMBER: "auth/missing-phone-number";
readonly MISSING_SESSION_INFO: "auth/missing-verification-id";
readonly MODULE_DESTROYED: "auth/app-deleted";
readonly NEED_CONFIRMATION: "auth/account-exists-with-different-credential";
readonly NETWORK_REQUEST_FAILED: "auth/network-request-failed";
readonly NULL_USER: "auth/null-user";
readonly NO_AUTH_EVENT: "auth/no-auth-event";
readonly NO_SUCH_PROVIDER: "auth/no-such-provider";
readonly OPERATION_NOT_ALLOWED: "auth/operation-not-allowed";
readonly OPERATION_NOT_SUPPORTED: "auth/operation-not-supported-in-this-environment";
readonly POPUP_BLOCKED: "auth/popup-blocked";
readonly POPUP_CLOSED_BY_USER: "auth/popup-closed-by-user";
readonly PROVIDER_ALREADY_LINKED: "auth/provider-already-linked";
readonly QUOTA_EXCEEDED: "auth/quota-exceeded";
readonly REDIRECT_CANCELLED_BY_USER: "auth/redirect-cancelled-by-user";
readonly REDIRECT_OPERATION_PENDING: "auth/redirect-operation-pending";
readonly REJECTED_CREDENTIAL: "auth/rejected-credential";
readonly SECOND_FACTOR_ALREADY_ENROLLED: "auth/second-factor-already-in-use";
readonly SECOND_FACTOR_LIMIT_EXCEEDED: "auth/maximum-second-factor-count-exceeded";
readonly TENANT_ID_MISMATCH: "auth/tenant-id-mismatch";
readonly TIMEOUT: "auth/timeout";
readonly TOKEN_EXPIRED: "auth/user-token-expired";
readonly TOO_MANY_ATTEMPTS_TRY_LATER: "auth/too-many-requests";
readonly UNAUTHORIZED_DOMAIN: "auth/unauthorized-continue-uri";
readonly UNSUPPORTED_FIRST_FACTOR: "auth/unsupported-first-factor";
readonly UNSUPPORTED_PERSISTENCE: "auth/unsupported-persistence-type";
readonly UNSUPPORTED_TENANT_OPERATION: "auth/unsupported-tenant-operation";
readonly UNVERIFIED_EMAIL: "auth/unverified-email";
readonly USER_CANCELLED: "auth/user-cancelled";
readonly USER_DELETED: "auth/user-not-found";
readonly USER_DISABLED: "auth/user-disabled";
readonly USER_MISMATCH: "auth/user-mismatch";
readonly USER_SIGNED_OUT: "auth/user-signed-out";
readonly WEAK_PASSWORD: "auth/weak-password";
readonly WEB_STORAGE_UNSUPPORTED: "auth/web-storage-unsupported";
readonly ALREADY_INITIALIZED: "auth/already-initialized";
readonly RECAPTCHA_NOT_ENABLED: "auth/recaptcha-not-enabled";
readonly MISSING_RECAPTCHA_TOKEN: "auth/missing-recaptcha-token";
readonly INVALID_RECAPTCHA_TOKEN: "auth/invalid-recaptcha-token";
readonly INVALID_RECAPTCHA_ACTION: "auth/invalid-recaptcha-action";
readonly MISSING_CLIENT_TYPE: "auth/missing-client-type";
readonly MISSING_RECAPTCHA_VERSION: "auth/missing-recaptcha-version";
readonly INVALID_RECAPTCHA_VERSION: "auth/invalid-recaptcha-version";
readonly INVALID_REQ_TYPE: "auth/invalid-req-type";
}
browserLocalPersistence
LOCAL
类型的持久性的实现,其中对底层存储空间使用 localStorage
。
签名:
browserLocalPersistence: Persistence
browserPopupRedirectResolver
PopupRedirectResolver 的实现,适用于基于浏览器的应用。
此方法不适用于 Node.js 环境。
签名:
browserPopupRedirectResolver: PopupRedirectResolver
browserSessionPersistence
SESSION
的持久性的实现(使用 sessionStorage
作为底层存储空间)。
签名:
browserSessionPersistence: Persistence
cordovaPopupRedirectResolver
PopupRedirectResolver 的实现,适用于基于 Cordova 的应用。
签名:
cordovaPopupRedirectResolver: PopupRedirectResolver
debugErrorMap
详细的错误映射,其中包含对大多数错误代码的详细说明。
请访问 AuthErrorMap 查看相关讨论
签名:
debugErrorMap: AuthErrorMap
因素 ID
可用于多重身份验证的因素枚举。
签名:
FactorId: {
readonly PHONE: "phone";
readonly TOTP: "totp";
}
indexDBLocalPersistence
LOCAL
类型的持久性的实现,其中对底层存储空间使用 indexedDB
。
签名:
indexedDBLocalPersistence: Persistence
inMemoryPersistence
类型为“NONE”的持久性的实现。
签名:
inMemoryPersistence: Persistence
OperationType
支持的操作类型的枚举。
签名:
OperationType: {
readonly LINK: "link";
readonly REAUTHENTICATE: "reauthenticate";
readonly SIGN_IN: "signIn";
}
prodErrorMap
删除了所有详细错误消息的最小错误映射。
请访问 AuthErrorMap 查看相关讨论
签名:
prodErrorMap: AuthErrorMap
提供方 ID
支持的提供程序的枚举。
签名:
ProviderId: {
readonly FACEBOOK: "facebook.com";
readonly GITHUB: "github.com";
readonly GOOGLE: "google.com";
readonly PASSWORD: "password";
readonly PHONE: "phone";
readonly TWITTER: "twitter.com";
}
登录方法
支持的登录方法的枚举。
签名:
SignInMethod: {
readonly EMAIL_LINK: "emailLink";
readonly EMAIL_PASSWORD: "password";
readonly FACEBOOK: "facebook.com";
readonly GITHUB: "github.com";
readonly GOOGLE: "google.com";
readonly PHONE: "phone";
readonly TWITTER: "twitter.com";
}
CustomParameters
OAuth 自定义参数的映射。
签名:
export declare type CustomParameters = Record<string, string>;
NextOrObserver
事件回调的类型定义。
签名:
export declare type NextOrObserver<T> = NextFn<T | null> | Observer<T | null>;
PhoneInfoOptions
验证电话号码所有权所需的信息。
所需信息取决于您使用的是单因素登录、多重登录还是多重登录。
签名:
export declare type PhoneInfoOptions = PhoneSingleFactorInfoOptions | PhoneMultiFactorEnrollInfoOptions | PhoneMultiFactorSignInInfoOptions;
UserProfile
AdditionalUserInfo 中使用的用户个人资料。
签名:
export declare type UserProfile = Record<string, unknown>;