auth package

Firebase Authentication

函数

函数 说明
function(应用, ...)
getAuth(应用) 返回与提供的 FirebaseApp 关联的 Auth 实例。如果不存在实例,则使用平台专用的默认依赖项初始化 Auth 实例。
initializeAuth(app, deps) 初始化 Auth 实例,并对依赖项进行精细控制。
function(存储, ...)
getReactNativePersistence(存储) 返回一个持久性对象,该对象封装了从 react-native@react-native-community/async-storage 导入的 AsyncStorage,并且可以在 initializeAuth() 的持久性依赖项字段中使用。
function(auth, ...)
applyActionCode(auth, oobCode) 应用通过电子邮件或其他带外机制发送给用户的验证码。
beforeAuthStateChanged(auth, callback, onAbort) 添加在身份验证状态更改设置新用户之前运行的阻塞回调。
checkActionCode(auth, oobCode) 检查通过电子邮件或其他带外机制发送给用户的验证码。
confirmPasswordReset(auth, oobCode, newPassword) 完成密码重置过程(提供确认码和新密码)。
connectAuthEmulator(auth, url, options) 更改 Auth 实例,以便与 Firebase Auth 模拟器(而不是正式版 Firebase Auth 服务)通信。
createUserWithEmailAndPassword(auth, email, password) 创建与指定电子邮件地址和密码关联的新用户账号。
fetchSignInMethodsForEmail(auth, email) 获取指定电子邮件地址的可能登录方法列表。启用电子邮件枚举保护后,无论给定电子邮件地址可以使用多少种身份验证方法,此方法都会返回空列表。
getMultiFactorResolver(auth, error) 提供适用于完成多重身份验证流程的 MultiFactorResolver
getRedirectResult(auth, resolver) - 从基于重定向的登录流程中返回 UserCredential
initializeRecaptchaConfig(auth) 将 reCAPTCHA 配置加载到 Auth 实例中。
isSignInWithEmailLink(auth, emailLink) 检查传入链接是否使用适合 signInWithEmailLink() 的电子邮件链接进行登录。
onAuthStateChanged(auth, nextOrObserver, error, completed) 为用户登录状态的变化添加观察器。
onIdTokenChanged(auth, nextOrObserver, error, completed) 为已登录用户的 ID 令牌的变更添加观察者。
revokeAccessToken(auth, token) 撤消指定的访问令牌。目前仅支持 Apple OAuth 访问令牌。
sendPasswordResetEmail(auth, email, actionCodeSettings) 向指定的电子邮件地址发送重设密码电子邮件。如果没有具有指定电子邮件地址的用户账号,且已启用电子邮件枚举保护,此方法不会抛出错误。
sendSignInLinkToEmail(auth, email, actionCodeSettings) 向指定电子邮件地址的用户发送登录电子邮件链接。
setPersistence(auth, 持久性) 更改 Auth 实例中当前保存的 Auth 会话的保留类型,并将此类保留应用于将来的登录请求,包括使用重定向请求的登录。
signInUnknownly(auth) 以匿名用户的身份异步登录。
signInWithCredential(auth, credential) 使用给定凭据异步登录。
signInWithCustomToken(auth, customToken) 使用自定义令牌异步登录。
signInWithEmailAndPassword(auth, email, password) 使用电子邮件地址和密码异步登录。
signInWithEmailLink(auth, email, emailLink) 使用电子邮件和登录电子邮件链接异步登录。
signInWithPhoneNumber(auth, phoneNumber, appVerifier) 使用电话号码异步登录。
signInWithPopup(auth, provider, resolver) 使用基于弹出式窗口的 OAuth 身份验证流程对 Firebase 客户端进行身份验证。
signInWithRedirect(auth, provider, resolver) 使用整页重定向流程对 Firebase 客户端进行身份验证。
signOut(auth) 退出当前用户。
updateCurrentUser(auth, user) Auth 实例上将提供的用户异步设置为 Auth.currentUser
useDeviceLanguage(auth) 将当前语言设置为默认的设备/浏览器偏好设置。
validatePassword(auth, password) 根据为项目或租户配置的密码政策验证密码。
verifyPasswordResetCode(auth, code) 检查通过电子邮件或其他带外机制发送给用户的密码重置代码。
function(link, ...)
parseActionCode网址(链接) 解析电子邮件操作链接字符串,如果链接有效,则返回 ActionCode网址,否则返回 null。
函数(用户, ...)
deleteUser(user) 删除用户并将其退出账号。
getIdToken(user, forceRefresh) 返回用于向 Firebase 服务标识用户的 JSON 网络令牌 (JWT)。
getIdTokenResult(user, forceRefresh) 返回反序列化 JSON Web 令牌 (JWT),用于向 Firebase 服务标识用户。
linkWithCredential(用户, 凭据) 将用户账号与给定的凭据相关联。
linkWithPhoneNumber(user, phoneNumber, appVerifier) 将用户账号与指定电话号码相关联。
linkWithPopup(用户、提供程序、解析器) 使用基于弹出的 OAuth 流程将经过身份验证的提供方与用户账号关联。
linkWithRedirect(用户, 提供方, 解析器) 使用整页重定向流程将 OAuthProvider 关联到用户账号。
多重身份验证(用户) 与用户对应的 MultiFactorUser
reauthenticateWithCredential(用户, 凭据) 使用新凭据对用户重新进行身份验证。
reauthenticateWithPhoneNumber(user, phoneNumber, appVerifier) 使用新的电话凭据对用户重新进行身份验证。
reauthenticateWithPopup(用户、提供程序、解析器) 通过基于弹出式窗口的 OAuth 流程,通过指定的 OAuthProvider 重新验证当前用户的身份。
reauthenticateWithRedirect(用户, 提供方, 解析器) 使用整页重定向流程通过指定的 OAuthProvider 重新验证当前用户的身份。
reload(用户) 重新加载用户账号数据(如果已登录)。
sendEmailVerification(user, actionCodeSettings) 向用户发送验证邮件。
unlink(用户, 提供方 ID) 解除提供商与用户账号的关联。
updateEmail(user, newEmail) 更新用户的电子邮件地址。
updatePassword(user, newPassword) 更新用户的密码。
updatePhoneNumber(user, credential) 更新用户的电话号码。
updateProfile(user, { displayName, photo网址: photoUrl }) 更新用户的个人资料数据。
verifyBeforeUpdateEmail(user, newEmail, actionCodeSettings) 向新的电子邮件地址发送验证邮件。
function(userCredential, ...)
getAdditionalUserInfo(userCredential) 针对指定凭据提取特定于提供方的 AdditionalUserInfo

说明
ActionCode网址 一个实用程序类,用于解析电子邮件操作网址,例如密码重置、电子邮件验证、电子邮件链接登录等。
AuthCredential 表示 AuthProvider 返回的凭据的接口。
EmailAuthCredential 表示 EmailAuthProvider 针对 ProviderId 返回的凭据的接口。
EmailAuthProvider 用于生成 EmailAuthCredential 的提供程序。
FacebookAuthProvider 用于为 ProviderId.FACEBOOK 生成 OAuthCredential 的提供程序。
GitHub AuthProvider 用于为 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 身份验证服务的接口。
AuthError Auth 错误的接口。
AuthErrorMap 错误代码到错误消息的映射。
AuthProvider 代表身份验证提供方的接口,用于帮助创建 AuthCredential
AuthSettings 表示 Auth 实例设置的接口。
配置 表示 Auth 配置的接口。
ConfirmationResult 电话号码登录、链接或重新进行身份验证的调用的结果。
依赖项 可用于初始化 Auth 实例的依赖项。
EmulatorConfig Firebase Authentication 模拟器的配置。
IdTokenResult 此接口表示从 User.getIdTokenResult() 获取的 ID 令牌结果。
MultiFactorAssertion 用于声明第二重身份验证所有权的基类。
MultiFactorError 用户需要提供第二重身份验证才能成功登录时抛出的错误。
MultiFactorInfo 包含第二重身份验证实体信息的结构。
MultiFactorResolver 用于在用户需要提供第二重身份验证凭据才能登录时,用于促进从 MultiFactorError 恢复的类。
MultiFactorSession 定义多重身份验证会话对象的接口,该对象用于为用户注册第二重身份验证或帮助已注册的用户登录第二重身份验证。
MultiFactorUser 用于定义与 User 相关的多重身份验证属性和操作的接口。
OAuthCredentialOptions 定义用于初始化 OAuthCredential 的选项。
ParsedToken 表示已解析的 ID 令牌的接口。
PasswordPolicy 指定密码政策要求的结构。
PasswordValidationStatus 一种结构,用于表明已满足或违反了哪些密码政策要求以及具体要求。
持久性 一个接口,用于涵盖可能的持久性机制类型。
PhoneMultiFactorAssertion 用于声明手机第二重身份验证所有权的类。由 PhoneMultiFactorGenerator.assertion() 提供。
PhoneMultiFactorenrollInfoOptions 用于注册第二重身份验证的选项。
PhoneMultiFactorInfo 用于电话号码第二重身份验证的 MultiFactorInfo 接口的子类。第二重身份验证的 factorIdFactorId.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 接口的子类。该第二重身份验证的 factorIdFactorId.TOTP。
用户 用户账号。
UserCredential 包含 UserOperationType 和提供方 ID 的结构。
UserInfo 用户个人资料信息,仅对 Firebase 项目的应用可见。
UserMetadata 表示用户元数据的界面。

变量

变量 说明
ActionCodeOperation 可能的电子邮件操作类型的枚举。
AuthErrorCodes 潜在 Auth 错误代码的映射,以便更轻松地与 SDK 抛出的错误进行比较。
browserLocalPersistence LOCAL 类型的 Persistence 实现,对底层存储使用 localStorage
browserPopupRedirectResolver PopupRedirectResolver 的实现,适用于基于浏览器的应用。
browserSessionPersistence SESSION持久性实现,将 sessionStorage 用于底层存储空间。
cordovaPopupRedirectResolver PopupRedirectResolver 的实现,适用于基于 Cordova 的应用。
debugErrorMap 详细的错误映射,包含大多数错误代码的详细说明。请参阅 AuthErrorMap 上的讨论
FactorId 可用于多重身份验证的因素的枚举。
indexedDBLocalPersistence LOCAL 类型的 Persistence 实现,对底层存储使用 indexedDB
inMemoryPersistence 类型为“NONE”的 Persistence 实现。
OperationType 支持的操作类型的枚举。
prodErrorMap 去除了所有详细错误消息的最小错误映射。请参阅 AuthErrorMap 上的相关讨论
ProviderId 支持的提供商的枚举。
SignInMethod 枚举支持的登录方法。

类型别名

类型别名 说明
CustomParameters OAuth 自定义参数的映射。
NextOrObserver 事件回调的类型定义。
PhoneInfoOptions 验证电话号码所有权所需的信息。
UserProfile AdditionalUserInfo 中使用的用户个人资料。

function(应用, ...)

getAuth(应用)

返回与提供的 FirebaseApp 关联的 Auth 实例。如果不存在实例,则使用平台专用的默认依赖项初始化 Auth 实例。

签名

export declare function getAuth(app?: FirebaseApp): Auth;

参数

参数 类型 说明
应用 FirebaseApp Firebase 应用。

返回

身份验证

initializeAuth(app, deps)

初始化 Auth 实例,并对依赖项进行精细控制。

getAuth() 相比,此函数可以更好地控制 Auth 实例。getAuth 使用平台专用默认值来提供依赖项。通常,getAuth 是初始化 Auth 的最简单方法,适用于大多数用例。如果您需要控制使用哪个持久性层,请使用 initializeAuth;如果您未使用 signInWithPopupsignInWithRedirect,请使用 initializeAuth 来最大限度地减小 bundle 大小。

例如,如果您的应用仅使用匿名账号,并且您只想为当前会话保存账号,请使用以下代码初始化 Auth

const auth = initializeAuth(app, {
  persistence: browserSessionPersistence,
  popupRedirectResolver: undefined,
});

签名

export declare function initializeAuth(app: FirebaseApp, deps?: Dependencies): Auth;

参数

参数 类型 说明
应用 FirebaseApp
依赖项 依赖项

返回

身份验证

function(storage, ...)

getReactNativePersistence(存储)

返回一个持久性对象,该对象封装了从 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 字符串 验证码已发送给用户。

返回

承诺<void>

beforeAuthStateChanged(auth, callback, onAbort)

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

签名

export declare function beforeAuthStateChanged(auth: Auth, callback: (user: User | null) => void | Promise<void>, onAbort?: () => void): Unsubscribe;

参数

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

返回

退订

checkActionCode(auth, oobCode)

检查通过电子邮件或其他带外机制发送给用户的验证码。

签名

export declare function checkActionCode(auth: Auth, oobCode: string): Promise<ActionCodeInfo>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
oobCode 字符串 验证码已发送给用户。

返回

Promise<操作代码信息>

关于代码的元数据

ConfirmPasswordReset(auth, oobCode, newPassword)

完成密码重置过程(提供确认码和新密码)。

签名

export declare function confirmPasswordReset(auth: Auth, oobCode: string, newPassword: string): Promise<void>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
oobCode 字符串 向用户发送确认码。
newPassword 字符串 新密码。

返回

承诺<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 实例。
网址 字符串 运行模拟器的网址(例如“http://localhost:9099”)。
选项 {disableWarnings: 布尔值;} 可选。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 实例。
电子邮件 字符串 用户的电子邮件地址。
密码 字符串 用户选择的密码。

返回

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 实例。
电子邮件 字符串 用户的电子邮件地址。已弃用。作为安全方面的最佳实践,建议弃用此方法。如需了解详情,请参阅 Identity Platform 文档中有关电子邮件枚举保护的内容。

返回

Promise&lt;string[]&gt;

getMultiFactorResolver(auth, error)

提供适用于完成多重身份验证流程的 MultiFactorResolver

签名

export declare function getMultiFactorResolver(auth: Auth, error: MultiFactorError): MultiFactorResolver;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
error MultiFactorError 登录或重新身份验证操作期间引发的 MultiFactorError

返回

MultiFactorResolver

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 实例。

返回

承诺<void>

示例

initializeRecaptchaConfig(auth);

检查传入链接是否使用适合 signInWithEmailLink() 的电子邮件链接进行登录。

签名

export declare function isSignInWithEmailLink(auth: Auth, emailLink: string): boolean;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
电子邮件链接 字符串 发送到用户的电子邮件地址的链接。

返回

布尔值

onAuthStateChanged(auth, nextOrObserver, error, completed)

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

如需保留旧行为,请参阅 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 已弃用。此回调绝不会触发。

返回

退订

calloutAccessToken(auth, token)

撤消指定的访问令牌。目前仅支持 Apple OAuth 访问令牌。

签名

export declare function revokeAccessToken(auth: Auth, token: string): Promise<void>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
token 字符串 Apple OAuth 访问令牌。

返回

承诺<void>

sendPasswordResetEmail(auth, email, actionCodeSettings)

向指定的电子邮件地址发送重设密码电子邮件。如果没有具有指定电子邮件地址的用户账号,且已启用电子邮件枚举保护,此方法不会抛出错误。

要完成密码重置,请使用发送给用户的电子邮件中提供的代码以及用户指定的新密码调用 confirmPasswordReset()

签名

export declare function sendPasswordResetEmail(auth: Auth, email: string, actionCodeSettings?: ActionCodeSettings): Promise<void>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
电子邮件 字符串 用户的电子邮件地址。
actionCodeSettings ActionCodeSettings ActionCodeSettings

返回

承诺<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 身份验证
电子邮件 字符串 用户的电子邮件地址。
actionCodeSettings ActionCodeSettings ActionCodeSettings

返回

承诺<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 会话的保留类型,并将此类保留应用于将来的登录请求,包括使用重定向请求的登录。

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

此方法不适用于 Node.js 环境或使用 FirebaseServerApp 创建的 Auth 实例。

签名

export declare function setPersistence(auth: Auth, persistence: Persistence): Promise<void>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
持久性, 持久性 要使用的持久性

返回

承诺<void>

在持久性更改完成后解析的 Promise

示例

setPersistence(auth, browserSessionPersistence);

匿名登录(auth)

以匿名用户的身份异步登录。

如果已经有一个匿名用户登录,则返回该用户;否则,系统会创建并返回一个新的匿名用户身份。

使用 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 字符串 用于登录的自定义令牌。

返回

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 实例。
电子邮件 字符串 用户的电子邮件地址。
密码 字符串 用户密码。

返回

Promise<UserCredential>

使用电子邮件和登录电子邮件链接异步登录。

如果未传递任何链接,系统会根据当前网址推断出链接。

如果电子邮件地址无效或电子邮件链接中的动态密码已过期,则会失败并报错。

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

签名

export declare function signInWithEmailLink(auth: Auth, email: string, emailLink?: string): Promise<UserCredential>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
电子邮件 字符串 用户的电子邮件地址。
电子邮件链接 字符串 发送到用户的电子邮件地址的链接。

返回

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 实例。
电话号码 字符串 用户的电话号码,采用 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 实例。
provider AuthProvider 要进行身份验证的提供方。提供方必须是 OAuthProviderEmailAuthProvider 等非 OAuth 提供方会抛出错误。
解析器 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 实例。
provider AuthProvider 要进行身份验证的提供方。提供方必须是 OAuthProviderEmailAuthProvider 等非 OAuth 提供方会抛出错误。
解析器 PopupRedirectResolver PopupRedirectResolver 的实例;如果已向 initializeAuth() 提供,或由 getAuth() 提供,则该实例为可选。

返回

承诺<绝不>

示例

// 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;

signOut(auth)

退出当前用户。

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

签名

export declare function signOut(auth: Auth): Promise<void>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。

返回

承诺<void>

updateCurrentUser(身份验证, 用户)

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

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

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

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

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

签名

export declare function updateCurrentUser(auth: Auth, user: User | null): Promise<void>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
用户 用户 |null 新的 User

返回

承诺<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 实例。
密码 字符串 要验证的密码。

返回

Promise<PasswordValidationStatus>

示例

validatePassword(auth, 'some-password');

verifyPasswordResetCode(auth, code)

检查通过电子邮件或其他带外机制发送给用户的密码重置代码。

签名

export declare function verifyPasswordResetCode(auth: Auth, code: string): Promise<string>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
代码 字符串 验证码已发送给用户。

返回

承诺<字符串>

用户的电子邮件地址(如果有效)。

parseActionCode网址(链接)

解析电子邮件操作链接字符串,如果链接有效,则返回 ActionCode网址,否则返回 null。

签名

export declare function parseActionCodeURL(link: string): ActionCodeURL | null;

参数

参数 类型 说明
link 字符串

返回

ActionCode网址 |null

function(user, ...)

deleteUser(用户)

删除用户并将其退出账号。

签名

export declare function deleteUser(user: User): Promise<void>;

参数

参数 类型 说明
用户 用户 用户。

返回

承诺<void>

getIdToken(用户, forceRefresh)

返回用于向 Firebase 服务标识用户的 JSON 网络令牌 (JWT)。

如果当前令牌未过期或者在接下来的五分钟内不会过期,则返回当前令牌。否则,此操作将刷新令牌并返回新令牌。

签名

export declare function getIdToken(user: User, forceRefresh?: boolean): Promise<string>;

参数

参数 类型 说明
用户 用户 用户。
强制刷新 布尔值 无论令牌过期情况如何,都强制刷新。

返回

承诺<字符串>

getIdTokenResult(user, forceRefresh)

返回反序列化 JSON Web 令牌 (JWT),用于向 Firebase 服务标识用户。

如果当前令牌未过期或者在接下来的五分钟内不会过期,则返回当前令牌。否则,此操作将刷新令牌并返回新令牌。

签名

export declare function getIdTokenResult(user: User, forceRefresh?: boolean): Promise<IdTokenResult>;

参数

参数 类型 说明
用户 用户 用户。
强制刷新 布尔值 无论令牌过期情况如何,都强制刷新。

返回

Promise<IdTokenResult>

linkWithCredential(用户, 凭据)

将用户账号与给定的凭据相关联。

AuthProvider 可用于生成凭据。

签名

export declare function linkWithCredential(user: User, credential: AuthCredential): Promise<UserCredential>;

参数

参数 类型 说明
用户 用户 用户。
凭据 AuthCredential 身份验证凭据。

返回

Promise<UserCredential>

linkWithPhoneNumber(user, phoneNumber, appVerifier)

将用户账号与指定电话号码相关联。

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

签名

export declare function linkWithPhoneNumber(user: User, phoneNumber: string, appVerifier: ApplicationVerifier): Promise<ConfirmationResult>;

参数

参数 类型 说明
用户 用户 用户。
电话号码 字符串 用户的电话号码,采用 E.164 格式(例如 +16505550101)。
appVerifier ApplicationVerifier ApplicationVerifier

返回

Promise<ConfirmationResult>

linkWithPopup(用户、提供程序、解析器)

使用基于弹出的 OAuth 流程将经过身份验证的提供方与用户账号关联。

如果关联成功,返回的结果将包含用户和提供方的凭据。

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

签名

export declare function linkWithPopup(user: User, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<UserCredential>;

参数

参数 类型 说明
用户 用户 用户。
provider AuthProvider 要进行身份验证的提供方。提供方必须是 OAuthProviderEmailAuthProvider 等非 OAuth 提供方会抛出错误。
解析器 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(用户、提供者、解析器)

使用整页重定向流程将 OAuthProvider 关联到用户账号。

要处理此操作的结果和错误,请参阅 getRedirectResult()。使用 linkWithRedirect() 时,请遵循最佳实践

此方法不适用于 Node.js 环境或使用 FirebaseServerApp 创建的 Auth 实例。

签名

export declare function linkWithRedirect(user: User, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<never>;

参数

参数 类型 说明
用户 用户 用户。
provider AuthProvider 要进行身份验证的提供方。提供方必须是 OAuthProviderEmailAuthProvider 等非 OAuth 提供方会抛出错误。
解析器 PopupRedirectResolver PopupRedirectResolver 的实例;如果已向 initializeAuth() 提供,或由 getAuth() 提供,则该实例为可选。

返回

承诺<绝不>

示例

// 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;

参数

参数 类型 说明
用户 用户 用户。

返回

MultiFactorUser

reauthenticateWithCredential(用户, 凭据)

使用新凭据对用户重新进行身份验证。

updatePassword() 等需要近期登录尝试中的令牌的操作之前使用。此方法可用于从 CREDENTIAL_TOO_OLD_LOGIN_AGAIN 错误或 TOKEN_EXPIRED 错误中恢复。

通过使用 FirebaseServerApp 创建的 Auth 实例登录的任何 User 都不支持此方法。

签名

export declare function reauthenticateWithCredential(user: User, credential: AuthCredential): Promise<UserCredential>;

参数

参数 类型 说明
用户 用户 用户。
凭据 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>;

参数

参数 类型 说明
用户 用户 用户。
电话号码 字符串 用户的电话号码,采用 E.164 格式(例如 +16505550101)。
appVerifier ApplicationVerifier ApplicationVerifier

返回

Promise<ConfirmationResult>

reauthenticateWithPopup(用户、提供程序、解析器)

通过基于弹出式窗口的 OAuth 流程,通过指定的 OAuthProvider 重新验证当前用户的身份。

如果重新进行身份验证成功,返回的结果将包含用户和提供方的凭据。

此方法不适用于 Node.js 环境,也不适用于通过 FirebaseServerApp 创建的 Auth 实例登录的任何 User

签名

export declare function reauthenticateWithPopup(user: User, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<UserCredential>;

参数

参数 类型 说明
用户 用户 用户。
provider AuthProvider 要进行身份验证的提供方。提供方必须是 OAuthProviderEmailAuthProvider 等非 OAuth 提供方会抛出错误。
解析器 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(用户、提供程序、解析器)

使用整页重定向流程通过指定的 OAuthProvider 重新验证当前用户的身份。

要处理此操作的结果和错误,请参阅 getRedirectResult()。在使用 reauthenticateWithRedirect() 时,请遵循最佳实践

此方法不适用于 Node.js 环境或使用 FirebaseServerApp 创建的 Auth 实例。

签名

export declare function reauthenticateWithRedirect(user: User, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<never>;

参数

参数 类型 说明
用户 用户 用户。
provider AuthProvider 要进行身份验证的提供方。提供方必须是 OAuthProviderEmailAuthProvider 等非 OAuth 提供方会抛出错误。
解析器 PopupRedirectResolver PopupRedirectResolver 的实例;如果已向 initializeAuth() 提供,或由 getAuth() 提供,则该实例为可选。

返回

承诺<绝不>

示例

// 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>;

参数

参数 类型 说明
用户 用户 用户。

返回

承诺<void>

sendEmailVerification(user, actionCodeSettings)

向用户发送验证邮件。

通过调用 applyActionCode() 完成验证流程。

签名

export declare function sendEmailVerification(user: User, actionCodeSettings?: ActionCodeSettings | null): Promise<void>;

参数

参数 类型 说明
用户 用户 用户。
actionCodeSettings ActionCodeSettings |null ActionCodeSettings

返回

承诺<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);

解除提供商与用户账号的关联。

签名

export declare function unlink(user: User, providerId: string): Promise<User>;

参数

参数 类型 说明
用户 用户 用户。
providerId 字符串 要解除关联的提供商。

返回

Promise<用户>

updateEmail(用户, newEmail)

更新用户的电子邮件地址。

系统会向原始电子邮件地址(如果已设置)发送一封电子邮件,该地址可让您撤消电子邮件地址更改,以保护其免遭账号盗用。

通过使用 FirebaseServerApp 创建的 Auth 实例登录的任何 User 都不支持此方法。

签名

export declare function updateEmail(user: User, newEmail: string): Promise<void>;

参数

参数 类型 说明
用户 用户 用户。
新电子邮件 字符串 新的电子邮件地址。抛出“auth/operation-not-allowed”在启用电子邮件枚举保护时出现的错误。已弃用 - 请改用 verifyBeforeUpdateEmail()

返回

承诺<void>

updatePassword(user, newPassword)

更新用户的密码。

签名

export declare function updatePassword(user: User, newPassword: string): Promise<void>;

参数

参数 类型 说明
用户 用户 用户。
newPassword 字符串 新密码。

返回

承诺<void>

updatePhoneNumber(用户, 凭据)

更新用户的电话号码。

此方法不适用于 Node.js 环境,也不适用于通过 FirebaseServerApp 创建的 Auth 实例登录的任何 User

签名

export declare function updatePhoneNumber(user: User, credential: PhoneAuthCredential): Promise<void>;

参数

参数 类型 说明
用户 用户 用户。
凭据 PhoneAuthCredential 用于对新电话号码进行身份验证的凭据。

返回

承诺<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>;

参数

参数 类型 说明
用户 用户 用户。
{ displayName, photo网址: photoUrl } { displayName?: string |null;photo网址?:字符串 |null;}

返回

承诺<void>

verifyBeforeUpdateEmail(user, newEmail, actionCodeSettings)

向新的电子邮件地址发送验证邮件。

验证后,用户的电子邮件地址会更新为新电子邮件地址。

如果您有自定义的电子邮件操作处理程序,则可以通过调用 applyActionCode() 完成验证流程。

签名

export declare function verifyBeforeUpdateEmail(user: User, newEmail: string, actionCodeSettings?: ActionCodeSettings | null): Promise<void>;

参数

参数 类型 说明
用户 用户 用户。
新电子邮件 字符串 要在更新前进行验证的新电子邮件地址。
actionCodeSettings ActionCodeSettings |null ActionCodeSettings

返回

承诺<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 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";
}

AuthErrorCode

潜在 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 类型的 Persistence 实现,对底层存储使用 localStorage

签名

browserLocalPersistence: Persistence

browserPopupRedirectResolver

PopupRedirectResolver 的实现,适用于基于浏览器的应用。

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

签名

browserPopupRedirectResolver: PopupRedirectResolver

browserSessionPersistence(浏览器会话持久性)

SESSION持久性实现,将 sessionStorage 用于底层存储空间。

签名

browserSessionPersistence: Persistence

cordovaPopupRedirectResolver

PopupRedirectResolver 的实现,适用于基于 Cordova 的应用。

签名

cordovaPopupRedirectResolver: PopupRedirectResolver

调试错误映射

详细的错误映射,包含大多数错误代码的详细说明。

请访问 AuthErrorMap 查看相关讨论

签名

debugErrorMap: AuthErrorMap

因子 ID

可用于多重身份验证的因素的枚举。

签名

FactorId: {
    readonly PHONE: "phone";
    readonly TOTP: "totp";
}

IndexingDBLocalPersistence

LOCAL 类型的 Persistence 实现,对底层存储使用 indexedDB

签名

indexedDBLocalPersistence: Persistence

inMemoryPersistence(内存持久性)

类型为“NONE”的 Persistence 实现。

签名

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";
}

自定义参数

OAuth 自定义参数的映射。

签名

export declare type CustomParameters = Record<string, string>;

下一个或观察者

事件回调的类型定义。

签名

export declare type NextOrObserver<T> = NextFn<T | null> | Observer<T | null>;

电话信息选项

验证电话号码所有权所需的信息。

所需信息取决于您执行的是单因素登录、多重身份验证注册还是多重身份验证登录。

签名

export declare type PhoneInfoOptions = PhoneSingleFactorInfoOptions | PhoneMultiFactorEnrollInfoOptions | PhoneMultiFactorSignInInfoOptions;

UserProfile

AdditionalUserInfo 中使用的用户个人资料。

签名

export declare type UserProfile = Record<string, unknown>;