auth package

Firebase Authentication

函数

函数 说明
function(app, ...)
getAuth(app) 返回与提供的 FirebaseApp 关联的 Auth 实例。如果不存在实例,则使用平台专用的默认依赖项初始化 Auth 实例。
initializeAuth(app, deps) 初始化 Auth 实例,以便精细控制依赖项
function(storage, ...)
getReactNativePersistence(storage) 返回一个持久性对象,该对象封装了从 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) 获取指定电子邮件地址的可能登录方法列表。启用 [电子邮件枚举保护](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) 后,无论指定电子邮件地址有多少种身份验证方法,此方法都会返回一个空列表。
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) 向指定的电子邮件地址发送重设密码电子邮件。如果不存在使用指定电子邮件地址的用户帐号,并且启用了 [电子邮件枚举保护](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection),此方法不会抛出错误。
sendSignInLinkToEmail(auth, email, actionCodeSettings) 向使用指定电子邮件地址的用户发送登录电子邮件链接。
setPersistence(auth, persistence) 针对当前保存的 Auth 会话更改 Auth 实例上的保留类型,并对将来的登录请求(包括使用重定向请求登录)应用这种保留类型。
signInAnonymously(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网址(link) 解析电子邮件操作链接字符串,如果链接有效,则返回 ActionCodeURL,否则返回 null。
function(user, ...)
deleteUser(user) 删除用户并退出帐号。
getIdToken(user, forceRefresh) 返回用于向 Firebase 服务标识用户的 JSON Web 令牌 (JWT)。
getIdTokenResult(user, forceRefresh) 返回用于向 Firebase 服务识别用户身份的反序列化 JSON 网络令牌 (JWT)。
linkWithCredential(user, credential) 将用户帐号与给定凭据相关联。
linkWithPhoneNumber(user, phoneNumber, appVerifier) 将用户帐号与给定的电话号码相关联。
linkWithPopup(user, provider, resolver) 使用基于弹出式窗口的 OAuth 流程,将经过身份验证的提供方与用户帐号相关联。
linkWithRedirect(user, provider, resolver) 使用整页重定向流程将 OAuthProvider 关联到用户帐号。
multiFactor(user) 与用户对应的 MultiFactorUser
reauthenticateWithCredential(user, credential) 使用新凭据重新对用户进行身份验证。
reauthenticateWithPhoneNumber(user, phoneNumber, appVerifier) 使用新的电话凭据重新对用户进行身份验证。
reauthenticateWithPopup(user, provider, resolver) 使用基于弹出式窗口的 OAuth 流程,通过指定的 OAuthProvider 重新验证当前用户。
reauthenticateWithRedirect(user, provider, resolver) 通过整页重定向流程通过指定的 OAuthProvider 对当前用户重新进行身份验证。
reload(用户) 重新加载用户帐号数据(如果已登录)。
sendEmailVerification(user, actionCodeSettings) 向用户发送验证邮件。
unlink(user, providerId) 解除提供方与用户帐号的关联。
updateEmail(user, newEmail) 更新用户的电子邮件地址。
updatePassword(user, newPassword) 更新用户的密码。
updatePhoneNumber(user, credential) 更新用户的电话号码。
updateProfile(user, { displayName, photoURL: photoUrl }) 更新用户的个人资料数据。
verifyBeforeUpdateEmail(user, newEmail, actionCodeSettings) 向新的电子邮件地址发送验证邮件。
function(userCredential, ...)
getAdditionalUserInfo(userCredential) 提取给定凭据的提供方专属 AdditionalUserInfo

说明
ActionCodeURL 一个实用程序类,用于解析电子邮件操作网址,如密码重置、电子邮件验证、电子邮件链接登录等。
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
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 文档](https://developers.google.com/recaptcha/docs/display#render_param)。除 sitekey 外,其他所有参数均接受:Firebase Auth 会为每个项目配置一个 reCAPTCHA,并在呈现时配置网站密钥。对于不可见的 reCAPTCHA,请将 size 键设置为 invisible
TotpMultiFactorAssertion 用于声明 TOTP 第二重身份验证所有权的类。由 TotpMultiFactorGenerator.assertionForEnrollment()TotpMultiFactorGenerator.assertionForSignIn() 提供。
TotpMultiFactorInfo 用于 TOTP 第二重身份验证的 MultiFactorInfo 接口的子类。第二重身份验证的 factorId 是 FactorIdFactorId.TOTP。
User 用户帐号。
UserCredential 包含 UserOperationType 和提供方 ID 的结构。
UserInfo 用户个人资料信息,仅对 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”的持久性的实现。
OperationType 支持的操作类型的枚举。
prodErrorMap 移除了所有详细错误消息的最小错误映射。请参阅 AuthErrorMap 的讨论
ProviderId 支持的提供程序的枚举。
SignInMethod 支持的登录方法的枚举。

类型别名

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

function(app, ...)

getAuth(app)

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

Signature:

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

参数

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

返回

身份验证

initializeAuth(app, deps)

初始化 Auth 实例,以便精细控制依赖项

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

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

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

Signature:

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

参数

参数 类型 说明
app FirebaseApp
deps 依赖项

返回

身份验证

function(storage, ...)

getReactNativePersistence(storage)

返回一个持久性对象,该对象封装了从 react-native@react-native-community/async-storage 导入的 AsyncStorage,并可在 initializeAuth() 中的持久性依赖项字段中使用。

Signature:

export declare function getReactNativePersistence(storage: ReactNativeAsyncStorage): Persistence;

参数

参数 类型 说明
存储位置 ReactNativeAsyncStorage

返回

持久性

function(auth, ...)

applyActionCode(auth, oobCode)

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

Signature:

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

参数

参数 类型 说明
auth 身份验证 Auth 实例。
oobCode string 系统向用户发送的验证码。

返回

Promise<void>

beforeAuthStateChanged(auth, callback, onAbort)

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

Signature:

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

参数

参数 类型 说明
auth 身份验证 Auth 实例。
callback (user: User | null) => void | Promise<void> 回调函数。如果抛出该异常,则会阻止设置用户。
onAbort () => 无效 回调触发,从而允许您撤消任何附带效应。beforeAuthStateChanged()

返回

退订

checkActionCode(auth, oobCode)

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

Signature:

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

参数

参数 类型 说明
auth 身份验证 Auth 实例。
oobCode string 系统向用户发送的验证码。

返回

Promise<ActionCodeInfo>

有关代码的元数据。

confirmPasswordReset(auth, oobCode, newPassword)

根据一个确认码和新密码,完成密码重置过程。

Signature:

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() 后立即同步调用此方法。请勿使用生产凭据,因为模拟器流量未加密。

Signature:

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 实例不支持此方法。

Signature:

export declare function createUserWithEmailAndPassword(auth: Auth, email: string, password: string): Promise<UserCredential>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
电子邮件地址 string 用户的电子邮件地址。
密码 string 用户选择的密码。

返回

Promise<UserCredential>

fetchSignInMethodsForEmail(auth, email)

获取指定电子邮件地址的可能登录方法列表。启用 [电子邮件枚举保护](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) 后,无论指定电子邮件地址有多少种身份验证方法,此方法都会返回一个空列表。

这有助于区分同一提供方的登录方法,例如EmailAuthProvider,包含 2 种登录方法:SignInMethod.EMAIL_PASSWORD 和 SignInMethod.EMAIL_LINK。

Signature:

export declare function fetchSignInMethodsForEmail(auth: Auth, email: string): Promise<string[]>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
电子邮件地址 string 用户的电子邮件地址。已弃用。作为安全最佳实践,建议从此方法进行迁移。如需了解详情,请参阅关于 [电子邮件枚举保护](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) 的 Identity Platform 文档。

返回

Promise<string[]>

getMultiFactorResolver(auth, error)

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

Signature:

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

参数

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

返回

MultiFactorResolver

getRedirectResult(auth, resolver)

从基于重定向的登录流程返回 UserCredential

如果登录成功,则返回已登录的用户。如果登录失败,则会失败并显示错误。如果未调用重定向操作,则返回 null

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

Signature:

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 环境。

Signature:

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

参数

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

返回

Promise<void>

示例

initializeRecaptchaConfig(auth);

检查传入的链接是否是具有适用于 signInWithEmailLink() 的电子邮件链接的登录。

Signature:

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

参数

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

返回

boolean

onAuthStateChanged(auth, nextOrObserver, error, completed)

为用户登录状态的更改添加观察器。

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

Signature:

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, error, completed)

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

包括登录、退出和令牌刷新事件。ID 令牌过期后,系统不会自动触发此操作。使用 User.getIdToken() 刷新 ID 令牌。

Signature:

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 访问令牌。

Signature:

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

参数

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

返回

Promise<void>

sendPasswordResetEmail(auth, email, actionCodeSettings)

向指定的电子邮件地址发送重设密码电子邮件。如果不存在使用指定电子邮件地址的用户帐号,并且启用了 [电子邮件枚举保护](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection),此方法不会抛出错误。

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

Signature:

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

参数

参数 类型 说明
auth 身份验证 Auth 实例。
电子邮件地址 string 用户的电子邮件地址。
actionCodeSettings 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()

Signature:

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

参数

参数 类型 说明
auth 身份验证
电子邮件地址 string 用户的电子邮件地址。
actionCodeSettings 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, persistence)

针对当前保存的 Auth 会话更改 Auth 实例上的保留类型,并对将来的登录请求(包括使用重定向请求登录)应用这种保留类型。

这方便登录的用户指定是否应记住其会话。此外,对于由其他用户共享或包含敏感数据的应用,这也让永远不会保留 Auth 状态。

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

Signature:

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

参数

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

返回

Promise<void>

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

示例

setPersistence(auth, browserSessionPersistence);

signInAnonymously(auth)

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

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

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

Signature:

export declare function signInAnonymously(auth: Auth): Promise<UserCredential>;

参数

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

返回

Promise<UserCredential>

signInWithCredential(auth, credential)

使用给定的凭据异步登录。

AuthProvider 可用于生成凭据。

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

Signature:

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 实例不支持此方法。

Signature:

export declare function signInWithCustomToken(auth: Auth, customToken: string): Promise<UserCredential>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
customToken string 用于登录的自定义令牌。

返回

Promise<UserCredential>

signInWithEmailAndPassword(auth, email, password)

使用电子邮件地址和密码异步登录。

如果电子邮件地址和密码不匹配,则会失败并显示错误。启用 [电子邮件枚举保护](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) 后,如果电子邮件地址/密码无效,此方法会失败并显示“auth/invalid-credential”。

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

Signature:

export declare function signInWithEmailAndPassword(auth: Auth, email: string, password: string): Promise<UserCredential>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
电子邮件地址 string 用户的电子邮件地址。
密码 string 用户密码。

返回

Promise<UserCredential>

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

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

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

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

Signature:

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

参数

参数 类型 说明
auth 身份验证 Auth 实例。
电子邮件地址 string 用户的电子邮件地址。
emailLink 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 实例。

Signature:

export declare function signInWithPhoneNumber(auth: Auth, phoneNumber: string, appVerifier: ApplicationVerifier): Promise<ConfirmationResult>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
phoneNumber 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 实例。

Signature:

export declare function signInWithPopup(auth: Auth, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<UserCredential>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
provider 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 实例。

Signature:

export declare function signInWithRedirect(auth: Auth, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<never>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
provider 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;

signOut(auth)

退出当前用户账号。

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

Signature:

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

参数

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

返回

Promise<void>

updateCurrentUser(auth, user)

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

系统将创建该用户的新实例副本,并将其设置为 currentUser。

与其他登录方法一样,这将触发 onAuthStateChanged()onIdTokenChanged() 监听器。

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

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

Signature:

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

参数

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

返回

Promise<void>

useDeviceLanguage(auth)

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

Signature:

export declare function useDeviceLanguage(auth: Auth): void;

参数

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

返回

void

validatePassword(auth, password)

根据为项目或租户配置的密码政策验证密码。

如果 Auth 实例上未设置租户 ID,则此方法将使用为项目配置的密码政策。否则,此方法将使用为租户配置的政策。如果未配置密码政策,系统将使用为所有项目配置的默认政策。

如果身份验证流程因提交的密码不符合密码政策要求而失败,并且之前已调用此方法,则再次调用时,此方法将使用可用的最新政策。

Signature:

export declare function validatePassword(auth: Auth, password: string): Promise<PasswordValidationStatus>;

参数

参数 类型 说明
auth 身份验证 Auth 实例。
密码 string 要验证的密码。

返回

Promise<PasswordValidationStatus>

示例

validatePassword(auth, 'some-password');

verifyPasswordResetCode(auth, code)

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

Signature:

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

参数

参数 类型 说明
auth 身份验证 Auth 实例。
验证码 string 系统向用户发送的验证码。

返回

Promise<string>

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

parseActionCode网址(链接)

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

Signature:

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

参数

参数 类型 说明
链接 string

返回

ActionCodeURL | null

function(user, ...)

deleteUser(user)

删除用户并退出帐号。

Signature:

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

参数

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

返回

Promise<void>

getIdToken(user, forceRefresh)

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

如果当前令牌未过期或在接下来的五分钟内不会过期,则返回当前令牌。否则,系统将刷新令牌并返回一个新令牌。

Signature:

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

参数

参数 类型 说明
用户 User 用户。
forceRefresh boolean 强制刷新,不考虑令牌过期。

返回

Promise<string>

getIdTokenResult(user, forceRefresh)

返回用于向 Firebase 服务识别用户身份的反序列化 JSON 网络令牌 (JWT)。

如果当前令牌未过期或在接下来的五分钟内不会过期,则返回当前令牌。否则,系统将刷新令牌并返回一个新令牌。

Signature:

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

参数

参数 类型 说明
用户 User 用户。
forceRefresh boolean 强制刷新,不考虑令牌过期。

返回

Promise<IdTokenResult>

linkWithCredential(user, credential)

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

AuthProvider 可用于生成凭据。

Signature:

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

参数

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

返回

Promise<UserCredential>

linkWithPhoneNumber(user, phoneNumber, appVerifier)

将用户帐号与给定的电话号码相关联。

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

Signature:

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

参数

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

返回

Promise<ConfirmationResult>

linkWithPopup(user, provider, resolver)

使用基于弹出式窗口的 OAuth 流程,将经过身份验证的提供方与用户帐号相关联。

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

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

Signature:

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

参数

参数 类型 说明
用户 User 用户。
provider 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(user, provider, resolver)

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

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

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

Signature:

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

参数

参数 类型 说明
用户 User 用户。
provider 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);

multiFactor(user)

与用户对应的 MultiFactorUser

这用于访问与用户相关的所有多重属性和操作。

Signature:

export declare function multiFactor(user: User): MultiFactorUser;

参数

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

返回

MultiFactorUser

reauthenticateWithCredential(user, credential)

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

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

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

Signature:

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

参数

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

返回

Promise<UserCredential>

reauthenticateWithPhoneNumber(user, phoneNumber, appVerifier)

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

在需要近期登录尝试中的令牌的操作(例如 updatePassword())之前使用。

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

Signature:

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

参数

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

返回

Promise<ConfirmationResult>

reauthenticateWithPopup(user, provider, resolver)

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

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

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

Signature:

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

参数

参数 类型 说明
用户 User 用户。
provider 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(user, provider, resolver)

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

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

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

Signature:

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

参数

参数 类型 说明
用户 User 用户。
provider 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);

重新加载(用户)

重新加载用户帐号数据(如果已登录)。

Signature:

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

参数

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

返回

Promise<void>

sendEmailVerification(user, actionCodeSettings)

向用户发送验证邮件。

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

Signature:

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

参数

参数 类型 说明
用户 User 用户。
actionCodeSettings 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);

解除提供方与用户帐号的关联。

Signature:

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

参数

参数 类型 说明
用户 User 用户。
providerId string 解除关联的提供商。

返回

Promise<User>

updateEmail(user, newEmail)

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

系统会向原始电子邮件地址发送一封电子邮件(如果已设置),从而撤消电子邮件地址更改,以防帐号被盗用。

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

Signature:

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

参数

参数 类型 说明
用户 User 用户。
newEmail string 新的电子邮件地址。启用 [电子邮件枚举保护](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) 后会抛出“auth/operation-not-allowed”错误。已弃用 - 请改用 verifyBeforeUpdateEmail()

返回

Promise<void>

updatePassword(user, newPassword)

更新用户的密码。

Signature:

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

参数

参数 类型 说明
用户 User 用户。
newPassword string 新密码。

返回

Promise<void>

updatePhoneNumber(user, credential)

更新用户的电话号码。

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

Signature:

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, photoURL: photoUrl })

更新用户的个人资料数据。

Signature:

export declare function updateProfile(user: User, { displayName, photoURL: photoUrl }: {
    displayName?: string | null;
    photoURL?: string | null;
}): Promise<void>;

参数

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

返回

Promise<void>

verifyBeforeUpdateEmail(user, newEmail, actionCodeSettings)

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

用户的电子邮件经过验证后将更新为新电子邮件地址。

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

Signature:

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

参数

参数 类型 说明
用户 User 用户。
newEmail string 要在更新前进行验证的新电子邮件地址。
actionCodeSettings 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

Signature:

export declare function getAdditionalUserInfo(userCredential: UserCredential): AdditionalUserInfo | null;

参数

参数 类型 说明
userCredential UserCredential 用户凭据。

返回

AdditionalUserInfo | null

ActionCodeOperation

枚举可能的电子邮件操作类型。

Signature:

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 的大小。

Signature:

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

Signature:

browserLocalPersistence: Persistence

browserPopupRedirectResolver

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

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

Signature:

browserPopupRedirectResolver: PopupRedirectResolver

browserSessionPersistence

SESSION持久性的实现(使用 sessionStorage 作为底层存储空间)。

Signature:

browserSessionPersistence: Persistence

cordovaPopupRedirectResolver

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

Signature:

cordovaPopupRedirectResolver: PopupRedirectResolver

debugErrorMap

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

请访问 AuthErrorMap 查看相关讨论

Signature:

debugErrorMap: AuthErrorMap

FactorId

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

Signature:

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

indexedDBLocalPersistence

LOCAL 类型的持久性的实现,其中对底层存储空间使用 indexedDB

Signature:

indexedDBLocalPersistence: Persistence

inMemoryPersistence

类型为“NONE”的持久性的实现。

Signature:

inMemoryPersistence: Persistence

OperationType

支持的操作类型的枚举。

Signature:

OperationType: {
    readonly LINK: "link";
    readonly REAUTHENTICATE: "reauthenticate";
    readonly SIGN_IN: "signIn";
}

prodErrorMap

删除了所有详细错误消息的最小错误映射。

请访问 AuthErrorMap 查看相关讨论

Signature:

prodErrorMap: AuthErrorMap

ProviderId

支持的提供程序的枚举。

Signature:

ProviderId: {
    readonly FACEBOOK: "facebook.com";
    readonly GITHUB: "github.com";
    readonly GOOGLE: "google.com";
    readonly PASSWORD: "password";
    readonly PHONE: "phone";
    readonly TWITTER: "twitter.com";
}

SignInMethod

支持的登录方法的枚举。

Signature:

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 自定义参数的映射。

Signature:

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

NextOrObserver

事件回调的类型定义。

Signature:

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

PhoneInfoOptions

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

所需信息取决于您使用的是单因素登录、多重登录还是多重登录。

Signature:

export declare type PhoneInfoOptions = PhoneSingleFactorInfoOptions | PhoneMultiFactorEnrollInfoOptions | PhoneMultiFactorSignInInfoOptions;

UserProfile

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

Signature:

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