Firebase 驗證
函式
類別
類別 | 說明 |
---|---|
ActionCodeURL | 這個公用程式類別可剖析電子郵件動作網址,例如密碼重設、電子郵件驗證、電子郵件連結登入等。 |
AuthCredential | 代表 AuthProvider 傳回憑證的介面。 |
EmailAuthCredential | 介面,代表 EmailAuthProvider 為 ProviderId 傳回的憑證。PASSWORD |
EmailAuthProvider | 產生 EmailAuthCredential 的提供者。 |
FacebookAuthProvider | 用來為 ProviderId.FACEBOOK 產生 OAuthCredential 的供應商。 |
GitHub | 用來為 ProviderId.GITHUB 產生 OAuthCredential 的提供者。 |
GoogleAuthProvider | 用來為 ProviderId.GOOGLE 產生 OAuthCredential 的供應商。 |
OAuth 憑證 | 代表 OAuthProvider 傳回的 OAuth 憑證。 |
OAuthProvider | 可產生一般 OAuth 憑證的供應商。 |
電話驗證憑證 | 代表 PhoneAuthProvider 傳回的憑證。 |
PhoneAuthProvider | 產生 PhoneAuthCredential 的供應商。 |
PhoneMultiFactorGenerator | 產生 PhoneMultiFactorAssertion 的供應商。 |
RecaptchaVerifier | 以 reCAPTCHA 為基礎的應用程式驗證器。 |
SAMLAuthProvider | SAML 的 AuthProvider。 |
TotpMultiFactorGenerator | 產生 TotpMultiFactorAssertion 的提供者。 |
TotpSecret | 用於產生 TotpMultiFactorAssertion 的供應商。儲存共用密鑰和其他參數,以產生以時間為準的動態密碼。實作擷取共用密鑰及產生 QR code 網址的方法。 |
TwitterAuthProvider | 用來為 ProviderId.TWITTER 產生 OAuthCredential 的供應商。 |
介面
介面 | 說明 |
---|---|
ActionCodeInfo | checkActionCode() 的回應。 |
ActionCodeSettings | 一種介面,用於定義必要的繼續/狀態網址,並搭配選用的 Android 和 iOS 軟體包 ID。 |
其他使用者資訊 | 包含聯合識別資訊提供者提供的其他使用者資訊的結構。 |
ApplicationVerifier | 驗證網域和防範濫用行為的驗證器。 |
驗證 | 代表 Firebase Auth 服務的介面。 |
AuthError | Auth 錯誤的介面。 |
AuthErrorMap | 錯誤代碼與錯誤訊息的對應。 |
AuthProvider | 代表驗證提供者的介面,用於建立 AuthCredential。 |
驗證設定 | 代表 Auth 執行個體設定的介面。 |
設定 | 代表 Auth 設定的介面。 |
確認結果 | 透過電話號碼登入、連結或重新驗證通話等結果。 |
依附元件 | 可用來初始化 Auth 執行個體的依附元件。 |
EmulatorConfig | Firebase 驗證模擬器的設定。 |
IdTokenResult | 表示 ID 權杖結果的介面,此介面是從 User.getIdTokenResult() 取得。 |
多因素斷層 | 用於斷言次要因素擁有權的基礎類別。 |
MultiFactorError | 使用者必須提供第二重驗證才能成功登入時擲回的錯誤。 |
MultiFactorInfo | 包含第二因子實體資訊的結構。 |
MultiFactorResolver | 這個類別可在使用者需要提供第二重驗證時,協助進行 MultiFactorError 復原。 |
多因素工作階段 | 這個介面定義多重要素工作階段物件,可用於為使用者註冊第二重驗證,或協助以次要驗證方式登入已註冊的使用者。 |
多因素使用者 | 此介面可定義與 User 相關的多重要素相關屬性和作業。 |
OAuthCredentialOptions | 定義初始化 OAuthCredential 的選項。 |
剖析權杖 | 代表剖析 ID 權杖的介面。 |
PasswordPolicy | 指定密碼政策規定的結構。 |
PasswordValidationStatus | 一種結構,用於指出已達到或違反哪些密碼政策規定和規定。 |
保留 | 這個介面涵蓋可能的持續性機制類型。 |
PhoneMultiFactorAssertion | 用於聲明手機次要驗證擁有權的類別。提供者:PhoneMultiFactorGenerator.assertion()。 |
PhoneMultiFactor 註冊 InfoOptions | 用於註冊次要驗證方式的選項。 |
PhoneMultiFactorInfo | 用於電話號碼第二要素的 MultiFactorInfo 介面子類別。第二個因子的 factorId 是 FactorId.PHONE。 |
PhoneMultiFactorSignInInfoOptions | 透過雙重驗證登入時使用的選項。 |
PhoneSingleFactorInfoOptions | 單因素登入適用的選項。 |
PopupRedirectResolver | 用於處理 DOM 專屬作業的解析器,例如 signInWithPopup() 或 signInWithRedirect()。 |
ReactNativeAsyncStorage | 提供的 AsyncStorage 介面。 |
RecaptchaParameters | 代表 reCAPTCHA 參數的介面。如需可接受的參數清單,請參閱 reCAPTCHA 文件。系統接受所有參數,但 sitekey 除外:Firebase 驗證會為每個專案佈建 reCAPTCHA,並在轉譯時設定網站金鑰。如果是隱形 reCAPTCHA,請將 size 金鑰設為 invisible 。 |
TotpMultiFactorAssertion | 用於斷言 TOTP 雙重驗證擁有權的類別。由 TotpMultiFactorGenerator.assertionForEnrollment() 和 TotpMultiFactorGenerator.assertionForSignIn() 提供。 |
TotpMultiFactorInfo | TOTP 第二因數的 MultiFactorInfo 介面子類別。第二個因子的 factorId 是 FactorId.TOTP。 |
使用者 | 使用者帳戶。 |
使用者憑證 | 包含 User、OperationType 和提供者 ID 的結構。 |
使用者資訊 | 使用者個人資料,僅供 Firebase 專案的應用程式查看。 |
使用者中繼資料 | 代表使用者中繼資料的介面。 |
變數
變數 | 說明 |
---|---|
ActionCodeOperation | 可能的電子郵件操作類型列舉。 |
AuthErrorCodes | 可能的 Auth 錯誤代碼對應,方便您與 SDK 擲回的錯誤比較。 |
browserLocalPersistence | 針對基礎儲存空間,使用 localStorage 實作 LOCAL 類型的「持續性」。 |
browserPopupRedirectResolver | 導入適用於瀏覽器應用程式的 PopupRedirectResolver。 |
browserSessionPersistence | 使用 sessionStorage 做為基礎儲存空間,實作 SESSION 的持續性。 |
cordovaPopupRedirectResolver | 實作適用於 Cordova 應用程式的 PopupRedirectResolver。 |
debugErrorMap | 詳細錯誤圖,其中包含多數錯誤代碼的詳細說明。請參閱 AuthErrorMap 的討論內容 |
因素 ID | 列舉可能用於多因素驗證的因素。 |
indexedDBLocalPersistence | 針對基礎儲存空間,使用 indexedDB 實作 LOCAL 類型的「持續性」。 |
inMemoryPersistence | 「NONE」類型的持續性實作。 |
作業類型 | 支援作業類型的列舉。 |
prodErrorMap | 最低錯誤對應,已移除所有詳細錯誤訊息。請前往 AuthErrorMap 參閱討論內容。 |
ProviderId | 支援提供者的列舉。 |
SignInMethod | 支援登入方法的列舉。 |
型別別名
類型別名 | 說明 |
---|---|
自訂參數 | OAuth 自訂參數的對應表。 |
NextOrObserver | 事件回呼的類型定義。 |
PhoneInfo 選項 | 驗證電話號碼擁有權所需的資訊。 |
UserProfile | 在 AdditionalUserInfo 中使用的使用者個人資料。 |
function(應用程式, ...)
getAuth(應用程式)
傳回與所提供 FirebaseApp 相關聯的驗證執行個體。如果沒有任何執行個體,系統會使用平台專屬的預設依附元件初始化驗證執行個體。
簽名:
export declare function getAuth(app?: FirebaseApp): Auth;
參數
參數 | 類型 | 說明 |
---|---|---|
應用程式 | Firebase 應用程式 | Firebase 應用程式。 |
傳回:
InitialAuth(應用程式, deps)
相較於 getAuth(),這個函式可讓您進一步控管 Auth 執行個體。getAuth
會使用平台專屬的預設值提供依附元件。一般來說,getAuth
是初始化驗證最簡單的方法,適用於大多數用途。如果需要控制要使用哪一個持續性層,請使用 initializeAuth
;如果不使用 signInWithPopup
或 signInWithRedirect
,則盡可能減少套件大小。
舉例來說,如果應用程式只使用匿名帳戶,而且你只希望儲存目前工作階段的帳戶,請以下列方式初始化 Auth
:
const auth = initializeAuth(app, {
persistence: browserSessionPersistence,
popupRedirectResolver: undefined,
});
簽名:
export declare function initializeAuth(app: FirebaseApp, deps?: Dependencies): Auth;
參數
參數 | 類型 | 說明 |
---|---|---|
應用程式 | Firebase 應用程式 | |
deps | 依附元件 |
傳回:
function(儲存空間, ...)
getReactNativePersistence(儲存空間)
傳回可納入從 react-native
或 @react-native-community/async-storage
匯入的 AsyncStorage
的持續性物件,且可用於 InitialAuth() 中的持續性依附元件欄位。
簽名:
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, 回呼, onAbort)
新增在驗證狀態變更之前執行的封鎖回呼,設定新使用者。
簽名:
export declare function beforeAuthStateChanged(auth: Auth, callback: (user: User | null) => void | Promise<void>, onAbort?: () => void): Unsubscribe;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
回呼 | (使用者:使用者 | 空值) =>void |承諾<void> | 系統會在設定新使用者價值前觸發回呼。如果擲回此情況,系統會禁止該使用者進行設定。 |
onAbort | () =>void | 當之後的 beforeAuthStateChanged() 回呼擲回時觸發回呼,可讓您復原任何副作用。 |
傳回:
checkActionCode(auth, oobCode)
檢查透過電子郵件或其他頻外機制傳送給使用者的驗證碼。
簽名:
export declare function checkActionCode(auth: Auth, oobCode: string): Promise<ActionCodeInfo>;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
oobCode | 字串 | 傳送給使用者的驗證碼。 |
傳回:
Promise<ActionCodeInfo>
程式碼的相關中繼資料
確認 PasswordReset(auth, oobCode, newPassword)
取得確認碼和新密碼,完成密碼重設程序。
簽名:
export declare function confirmPasswordReset(auth: Auth, oobCode: string, newPassword: string): Promise<void>;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
oobCode | 字串 | 傳送給使用者的確認碼。 |
新密碼 | 字串 | 新密碼。 |
傳回:
承諾<void>
ConnectAuthEmulator(驗證、網址、選項)
將 Auth 執行個體變更為與 Firebase 驗證模擬器通訊,而非與實際工作環境 Firebase 驗證服務通訊。
第一次呼叫 InitialAuth() 後,必須立即同步呼叫這個方法。請勿與正式版憑證搭配使用,因為模擬器流量不會加密。
簽名:
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(驗證, 電子郵件, 密碼)
建立與指定電子郵件地址和密碼相關聯的新使用者帳戶。
使用者帳戶建立成功後,就會同時登入您的應用程式。
如果使用者帳戶已存在或是密碼無效,就無法建立使用者帳戶。
使用 FirebaseServerApp 建立的 Auth 執行個體不支援此方法。
簽名:
export declare function createUserWithEmailAndPassword(auth: Auth, email: string, password: string): Promise<UserCredential>;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
電子郵件 | 字串 | 使用者的電子郵件地址。 |
密碼 | 字串 | 使用者選擇的密碼。 |
傳回:
Promise<使用者憑證>
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 說明文件:電子郵件 Enumeration Protection。 |
傳回:
Promise<string[]>
getMultiFactorResolver(auth, error)
提供適合完成多因素流程的 MultiFactorResolver。
簽名:
export declare function getMultiFactorResolver(auth: Auth, error: MultiFactorError): MultiFactorResolver;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
錯誤 | MultiFactorError | 在登入或重新驗證期間發生 MultiFactorError。 |
傳回:
getRedirectResult(auth, 解析器)
從重新導向的登入流程傳回 UserCredential。
如果登入成功,則傳回已登入的使用者。如果登入失敗,則會因錯誤而失敗。如未呼叫重新導向作業,會傳回 null
。
這個方法不適用於 Node.js 環境,或透過 FirebaseServerApp 建立的 Auth 執行個體。
簽名:
export declare function getRedirectResult(auth: Auth, resolver?: PopupRedirectResolver): Promise<UserCredential | null>;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的執行個體,如果已提供給 InitialAuth() 或由 getAuth() 提供,則為選用。 |
傳回:
Promise<使用者憑證 |空值>
範例
// 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;
InitialRecaptchaConfig(驗證)
將 reCAPTCHA 設定載入 Auth
執行個體。
系統就會載入 reCAPTCHA 設定,指定是否要在目前的驗證工作階段中,為每位驗證供應商觸發 reCAPTCHA 驗證流程。
如果未叫用 InitialRecaptchaConfig(),驗證流程一律會在未進行 reCAPTCHA 驗證的情況下啟動。如果供應商設為需要進行 reCAPTCHA 驗證,SDK 會以公開透明的方式載入 reCAPTCHA 設定,並重新啟動驗證流程。
因此,只要呼叫這個選用方法,即可縮短未來驗證流程的延遲時間。及早載入 reCAPTCHA 設定也能強化 reCAPTCHA 收集的信號。
這個方法不適用於 Node.js 環境。
簽名:
export declare function initializeRecaptchaConfig(auth: Auth): Promise<void>;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
傳回:
承諾<void>
範例
initializeRecaptchaConfig(auth);
isSignInWithEmailLink(auth, emailLink)
檢查收到的連結是否為含有適用於 signInWithEmailLink() 的電子郵件連結登入。
簽名:
export declare function isSignInWithEmailLink(auth: Auth, emailLink: string): boolean;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
電子郵件連結 | 字串 | 傳送到使用者電子郵件地址的連結。 |
傳回:
布林值
onAuthStateChanged(auth, nextOrObserver, error, complete)
新增觀察器,用於變更使用者的登入狀態。
如要保留舊行為,請參閱 onIdTokenChanged()。
簽名:
export declare function onAuthStateChanged(auth: Auth, nextOrObserver: NextOrObserver<User>, error?: ErrorFn, completed?: CompleteFn): Unsubscribe;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
NextOrObserver | NextOrObserver<使用者> | 發生變更時觸發回呼。 |
錯誤 | ErrorFn | 已淘汰,系統從未觸發這個回呼。登入/登出函式傳回的承諾中,可能會出現登入/登出錯誤。 |
已完成 | 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<使用者> | 發生變更時觸發回呼。 |
錯誤 | ErrorFn | 已淘汰,系統從未觸發這個回呼。登入/登出函式傳回的承諾中,可能會出現登入/登出錯誤。 |
已完成 | CompleteFn | 已淘汰,系統從未觸發這個回呼。 |
傳回:
responseAccessToken(驗證, 權杖)
撤銷指定的存取權杖。目前僅支援 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 執行個體。 |
電子郵件 | 字串 | 使用者的電子郵件地址。 |
actionCode 設定 | 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 | 驗證 | |
電子郵件 | 字串 | 使用者的電子郵件地址。 |
actionCode 設定 | 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
狀態。
這個方法不適用於 Node.js 環境,或透過 FirebaseServerApp 建立的 Auth 執行個體。
簽名:
export declare function setPersistence(auth: Auth, persistence: Persistence): Promise<void>;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
持續性 | 保留 | 要使用的持續性。 |
傳回:
承諾<void>
在持續性變更完成後解決的 Promise
範例
setPersistence(auth, browserSessionPersistence);
以匿名方式登入(驗證)
以匿名使用者身分非同步登入。
如果目前已有匿名使用者登入,系統就會傳回該使用者;否則,系統會建立並傳回新的匿名使用者身分。
透過 FirebaseServerApp 建立的 Auth 執行個體不支援此方法。
簽名:
export declare function signInAnonymously(auth: Auth): Promise<UserCredential>;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
傳回:
Promise<使用者憑證>
signInWithCredential(驗證, 憑證)
使用給定憑證以非同步方式登入。
AuthProvider 可用於產生憑證。
透過 FirebaseServerApp 建立的 Auth 執行個體不支援此方法。
簽名:
export declare function signInWithCredential(auth: Auth, credential: AuthCredential): Promise<UserCredential>;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
憑證 | AuthCredential | 驗證憑證。 |
傳回:
Promise<使用者憑證>
signInWithCustomToken(auth, customToken)
使用自訂權杖以非同步方式登入。
自訂權杖可以整合 Firebase 驗證與現有的驗證系統,且必須由驗證後端透過 Admin SDK 中的 createCustomToken 方法產生。
如果 Firebase 驗證服務無效、已過期或不接受權杖,就會失敗並顯示錯誤。
透過 FirebaseServerApp 建立的 Auth 執行個體不支援此方法。
簽名:
export declare function signInWithCustomToken(auth: Auth, customToken: string): Promise<UserCredential>;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
自訂權杖 | 字串 | 用來登入的自訂權杖。 |
傳回:
Promise<使用者憑證>
signInWithEmailAndPassword(驗證, 電子郵件, 密碼)
使用電子郵件地址和密碼非同步登入。
如果電子郵件地址和密碼不符,將失敗並發生錯誤。電子郵件列舉防護功能啟用後,此方法就會失敗,並顯示「auth/Invalid-credential」在電子郵件/密碼無效時使用。
使用 FirebaseServerApp 建立的 Auth 執行個體不支援此方法。
簽名:
export declare function signInWithEmailAndPassword(auth: Auth, email: string, password: string): Promise<UserCredential>;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
電子郵件 | 字串 | 使用者的電子郵件地址。 |
密碼 | 字串 | 使用者密碼。 |
傳回:
Promise<使用者憑證>
signInWithEmailLink(驗證, 電子郵件, 電子郵件連結)
使用電子郵件和登入電子郵件連結非同步登入。
如果未傳送連結,系統會根據目前的網址推斷連結。
如果電子郵件地址無效,或是電子郵件連結中的動態密碼過期,就會發生錯誤。
透過 FirebaseServerApp 建立的 Auth 執行個體不支援此方法。
簽名:
export declare function signInWithEmailLink(auth: Auth, email: string, emailLink?: string): Promise<UserCredential>;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
電子郵件 | 字串 | 使用者的電子郵件地址。 |
電子郵件連結 | 字串 | 傳送到使用者電子郵件地址的連結。 |
傳回:
Promise<使用者憑證>
範例
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 執行個體。 |
phoneNumber | 字串 | 以 E.164 格式輸入的使用者電話號碼 (例如 +16505550101)。 |
應用程式 Verifier | 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(驗證、供應商、解析器)
使用彈出式視窗式 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 的執行個體,如果已提供給 InitialAuth() 或由 getAuth() 提供,則為選用。 |
傳回:
Promise<使用者憑證>
範例
// 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, 解析器)
使用全頁重新導向流程驗證 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 的執行個體,如果已提供給 InitialAuth() 或由 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(驗證)
將目前的使用者登出。
透過 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 執行個體。 |
使用者 | 使用者 |空值 | 新的「使用者」。 |
傳回:
承諾<void>
useDeviceLanguage(驗證)
將目前的語言設為預設的裝置/瀏覽器偏好設定。
簽名:
export declare function useDeviceLanguage(auth: Auth): void;
參數
參數 | 類型 | 說明 |
---|---|---|
auth | 驗證 | Auth 執行個體。 |
傳回:
void
VerifyPassword(auth、密碼)
依據為專案或用戶群設定的密碼政策驗證密碼。
如果 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 執行個體。 |
程式碼 | 字串 | 傳送給使用者的驗證碼。 |
傳回:
承諾<字串>
使用者的電子郵件地址 (如果有效的話)。
function(連結, ...)
parseActionCodeURL(連結)
剖析電子郵件動作連結字串,如果連結有效,就會傳回 ActionCodeURL,否則傳回空值。
簽名:
export declare function parseActionCodeURL(link: string): ActionCodeURL | null;
參數
參數 | 類型 | 說明 |
---|---|---|
連結 | 字串 |
傳回:
ActionCodeURL |空值
函式(使用者, ...)
delete 使用者(使用者)
刪除使用者並將其登出。
簽名:
export declare function deleteUser(user: User): Promise<void>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
傳回:
承諾<void>
getIdToken(user, forceRefresh)
將用來識別使用者的 JSON Web Token (JWT) 傳回 Firebase 服務。
如果目前的權杖並未過期,或將在接下來的五分鐘內失效,系統會傳回目前的權杖。否則,系統會重新整理權杖並傳回新的權杖。
簽名:
export declare function getIdToken(user: User, forceRefresh?: boolean): Promise<string>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
強制重新整理 | 布林值 | 無論權杖過期為何,一律強制重新整理。 |
傳回:
承諾<字串>
getIdTokenResult(user, forceRefresh)
傳回用來識別 Firebase 服務使用者的去序列化 JSON Web Token (JWT)。
如果目前的權杖並未過期,或將在接下來的五分鐘內失效,系統會傳回目前的權杖。否則,系統會重新整理權杖並傳回新的權杖。
簽名:
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<使用者憑證>
linkWithPhoneNumber(使用者, 電話號碼, appVerifier)
將使用者帳戶與指定的電話號碼建立連結。
這個方法不適用於 Node.js 環境。
簽名:
export declare function linkWithPhoneNumber(user: User, phoneNumber: string, appVerifier: ApplicationVerifier): Promise<ConfirmationResult>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
phoneNumber | 字串 | 以 E.164 格式輸入的使用者電話號碼 (例如 +16505550101)。 |
應用程式 Verifier | ApplicationVerifier | ApplicationVerifier。 |
傳回:
Promise<ConfirmationResult>
linkWithPopup(使用者、供應商、解析器)
使用彈出式視窗式 OAuth 流程,將已驗證的供應商連結至使用者帳戶。
如果連結成功,傳回的結果會包含使用者和提供者的憑證。
這個方法不適用於 Node.js 環境。
簽名:
export declare function linkWithPopup(user: User, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<UserCredential>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
供應商 | AuthProvider | 要驗證的供應商。提供者必須是 OAuthProvider。非 OAuth 提供者 (例如 EmailAuthProvider) 會擲回錯誤。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的執行個體,如果已提供給 InitialAuth() 或由 getAuth() 提供,則為選用。 |
傳回:
Promise<使用者憑證>
範例
// 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>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
供應商 | AuthProvider | 要驗證的供應商。提供者必須是 OAuthProvider。非 OAuth 提供者 (例如 EmailAuthProvider) 會擲回錯誤。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的執行個體,如果已提供給 InitialAuth() 或由 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;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
傳回:
reauthenticateWithCredential(使用者, 憑證)
使用新的憑證重新驗證使用者。
使用「updatePassword()」等作業前執行要求,以便在最近嘗試登入時取得權杖。這個方法可用來復原 CREDENTIAL_TOO_OLD_LOGIN_AGAIN
錯誤或 TOKEN_EXPIRED
錯誤。
使用者透過 FirebaseServerApp 建立並登入 Auth 執行個體,則不支援此方法。
簽名:
export declare function reauthenticateWithCredential(user: User, credential: AuthCredential): Promise<UserCredential>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
憑證 | AuthCredential | 驗證憑證。 |
傳回:
Promise<使用者憑證>
reauthenticateWithPhoneNumber(使用者, 電話號碼, appVerifier)
使用新的手機憑證重新驗證使用者。
使用「updatePassword()」等作業前執行要求,以便在最近嘗試登入時取得權杖。
這個方法不適用於 Node.js 環境,以及由 Auth 執行個體登入 (透過 FirebaseServerApp) 登入的使用者。
簽名:
export declare function reauthenticateWithPhoneNumber(user: User, phoneNumber: string, appVerifier: ApplicationVerifier): Promise<ConfirmationResult>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
phoneNumber | 字串 | 以 E.164 格式輸入的使用者電話號碼 (例如 +16505550101)。 |
應用程式 Verifier | ApplicationVerifier | ApplicationVerifier。 |
傳回:
Promise<ConfirmationResult>
reauthenticateWithPopup(使用者、供應商、解析器)
使用以彈出式視窗為基礎的 OAuth 流程,以指定的 OAuthProvider 重新驗證目前的使用者。
如果重新驗證成功,傳回的結果會包含使用者和提供者的憑證。
這個方法不適用於 Node.js 環境,以及由 Auth 執行個體登入 (透過 FirebaseServerApp) 登入的使用者。
簽名:
export declare function reauthenticateWithPopup(user: User, provider: AuthProvider, resolver?: PopupRedirectResolver): Promise<UserCredential>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
供應商 | AuthProvider | 要驗證的供應商。提供者必須是 OAuthProvider。非 OAuth 提供者 (例如 EmailAuthProvider) 會擲回錯誤。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的執行個體,如果已提供給 InitialAuth() 或由 getAuth() 提供,則為選用。 |
傳回:
Promise<使用者憑證>
範例
// 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>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
供應商 | AuthProvider | 要驗證的供應商。提供者必須是 OAuthProvider。非 OAuth 提供者 (例如 EmailAuthProvider) 會擲回錯誤。 |
解析器 | PopupRedirectResolver | PopupRedirectResolver 的執行個體,如果已提供給 InitialAuth() 或由 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(使用者, actionCodeSettings)
傳送驗證電子郵件給使用者。
驗證程序是透過呼叫 applyActionCode() 來完成。
簽名:
export declare function sendEmailVerification(user: User, actionCodeSettings?: ActionCodeSettings | null): Promise<void>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
actionCode 設定 | 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 sendEmailVerification(user, actionCodeSettings);
// Obtain code from the user.
await applyActionCode(auth, code);
link(使用者, providerId)
將提供者與使用者帳戶取消連結。
簽名:
export declare function unlink(user: User, providerId: string): Promise<User>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
供應商 ID | 字串 | 要取消連結的供應商。 |
傳回:
Promise<使用者>
updateEmail(使用者, 新電子郵件)
更新使用者的電子郵件地址。
系統會傳送電子郵件到原始電子郵件地址 (如果已設定),藉此撤銷電子郵件地址變更結果,以防帳戶遭到駭客入侵。
使用者透過 FirebaseServerApp 建立並登入 Auth 執行個體,則不支援此方法。
簽名:
export declare function updateEmail(user: User, newEmail: string): Promise<void>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
新電子郵件 | 字串 | 新的電子郵件地址。傳回「auth/operation-not-allowed」啟用「電子郵件列舉防護功能」時會發生錯誤。已淘汰 - 請改用 verifyBeforeUpdateEmail()。 |
傳回:
承諾<void>
updatePassword(使用者, 新密碼)
更新使用者的密碼。
簽名:
export declare function updatePassword(user: User, newPassword: string): Promise<void>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
新密碼 | 字串 | 新密碼。 |
傳回:
承諾<void>
updatePhoneNumber(使用者, 憑證)
更新使用者的電話號碼。
這個方法不適用於 Node.js 環境,以及由 Auth 執行個體登入 (透過 FirebaseServerApp) 登入的使用者。
簽名:
export declare function updatePhoneNumber(user: User, credential: PhoneAuthCredential): Promise<void>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
憑證 | 電話驗證憑證 | 驗證新電話號碼的憑證。 |
傳回:
承諾<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, photosURL: photosUrl })
更新使用者的個人資料。
簽名:
export declare function updateProfile(user: User, { displayName, photoURL: photoUrl }: {
displayName?: string | null;
photoURL?: string | null;
}): Promise<void>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
{ displayName, photosURL: photosUrl } | { displayName?: 字串 |null;相簿網址?:字串 |null;} |
傳回:
承諾<void>
VerifyBeforeUpdateEmail(使用者, newEmail, actionCodeSettings)
傳送驗證電子郵件到新的電子郵件地址。
驗證完畢後,使用者的電子郵件地址就會更新為新地址。
如果您有自訂的電子郵件動作處理常式,可以呼叫 applyActionCode() 完成驗證程序。
簽名:
export declare function verifyBeforeUpdateEmail(user: User, newEmail: string, actionCodeSettings?: ActionCodeSettings | null): Promise<void>;
參數
參數 | 類型 | 說明 |
---|---|---|
使用者 | 使用者 | 使用者。 |
新電子郵件 | 字串 | 要在更新前驗證的新電子郵件地址。 |
actionCode 設定 | 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 verifyBeforeUpdateEmail(user, 'newemail@example.com', actionCodeSettings);
// Obtain code from the user.
await applyActionCode(auth, code);
function(userCredential, ...)
getAdditionalUserInfo(使用者憑證)
擷取指定憑證的提供者專屬 AdditionalUserInfo。
簽名:
export declare function getAdditionalUserInfo(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";
}
AuthErrorCodes
可能的 Auth
錯誤代碼對應,方便您與 SDK 擲回的錯誤比較。
請注意,您無法在地圖中用樹形的方式移動個別按鍵,因此如果使用對應,套件大小可能會大幅增加。
簽名:
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
針對基礎儲存空間,使用 localStorage
實作 LOCAL
類型的「持續性」。
簽名:
browserLocalPersistence: Persistence
BrowserPopupRedirectResolver
導入適用於瀏覽器應用程式的 PopupRedirectResolver。
這個方法不適用於 Node.js 環境。
簽名:
browserPopupRedirectResolver: PopupRedirectResolver
BrowserSessionPersistence
使用 sessionStorage
做為基礎儲存空間,實作 SESSION
的持續性。
簽名:
browserSessionPersistence: Persistence
cordovaPopupRedirectResolver
實作適用於 Cordova 應用程式的 PopupRedirectResolver。
簽名:
cordovaPopupRedirectResolver: PopupRedirectResolver
DebugErrorMap
含有多數錯誤代碼的詳細錯誤對應。
前往 AuthErrorMap 查看討論
簽名:
debugErrorMap: AuthErrorMap
因素 ID
列舉可能用於多因素驗證的因素。
簽名:
FactorId: {
readonly PHONE: "phone";
readonly TOTP: "totp";
}
已編入索引的 DBLocalPersistence
針對基礎儲存空間,使用 indexedDB
實作 LOCAL
類型的「持續性」。
簽名:
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";
}
自訂參數
OAuth 自訂參數的對應表。
簽名:
export declare type CustomParameters = Record<string, string>;
NextOrObserver
事件回呼的類型定義。
簽名:
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>;