Auth interface

代表 Firebase 驗證服務的介面。

如需 Firebase 驗證服務的完整使用指南,請參閱 Firebase 驗證

Signature:

export interface Auth 

屬性

屬性 類型 說明
應用程式 FirebaseApp Auth 服務執行個體相關聯的 FirebaseApp
設定 設定 用於初始化這個執行個體的設定
currentUser 使用者 | 空值 目前登入的使用者 (或空值)。
emulatorConfig EmulatorConfig | 空值 目前的模擬器設定 (或空值)。
languageCode 字串 | 空值 Auth 執行個體的語言代碼。
name 字串 Auth 服務執行個體相關聯的應用程式名稱。
設定 AuthSettings Auth 執行個體的設定。
tenantId 字串 | 空值 Auth 執行個體的用戶群 ID。

方法

方法 說明
authStateReady() 會傳回承諾,在初次驗證狀態完成時立即解析。如果這項承諾作業解析,目前的使用者可能是有效的使用者,或者如果使用者已登出,則可能是 null
beforeAuthStateChanged(callback, onAbort) 新增在驗證狀態變更設定新使用者之前執行的封鎖回呼,以便設定新使用者。
onAuthStateChanged(nextOrObserver, error, completed) 新增觀察器,觀察使用者登入狀態的變更。
onIdTokenChanged(nextOrObserver, error, completed) 新增觀察器,瞭解對已登入使用者 ID 權杖的變更。
setPersistence(persistence) 變更 Auth 執行個體的持續性類型。
signOut() 登出目前的使用者。這項操作不會自動撤銷使用者的 ID 權杖。
updateCurrentUser(user) Auth 執行個體上,以非同步方式將您提供的使用者設為 Auth.currentUser
useDeviceLanguage() 將目前的語言設為預設的裝置/瀏覽器偏好設定。

Auth.app

Auth 服務執行個體相關聯的 FirebaseApp

Signature:

readonly app: FirebaseApp;

Auth.config

用於初始化這個執行個體的設定

Signature:

readonly config: Config;

Auth.currentUser

目前登入的使用者 (或空值)。

Signature:

readonly currentUser: User | null;

Auth.emulatorConfig

目前的模擬器設定 (或空值)。

Signature:

readonly emulatorConfig: EmulatorConfig | null;

Auth.languageCode

Auth 執行個體的語言代碼。

這是一個可讀取/可寫入的屬性。如果設為空值,系統就會套用預設的 Firebase 控制台語言設定。這個語言代碼會傳播到電子郵件動作範本 (密碼重設、電子郵件驗證和電子郵件變更撤銷)、電話驗證的簡訊範本、reCAPTCHA 驗證器和 OAuth 彈出式視窗/重新導向作業 (只要指定供應商支援指定語言代碼的本地化)。

Signature:

languageCode: string | null;

Auth.name

Auth 服務執行個體相關聯的應用程式名稱。

Signature:

readonly name: string;

Auth.settings

Auth 執行個體的設定。

用於編輯/讀取設定相關選項,例如用於手機驗證的應用程式驗證模式。

Signature:

readonly settings: AuthSettings;

Auth.tenantId

Auth 執行個體的用戶群 ID。

這是一個可讀取/可寫入的屬性。設定 Auth 執行個體的用戶群 ID 後,未來所有登入/註冊作業都會傳送這個用戶群 ID,並將使用者登入或註冊至指定的用戶群專案。如果設為空值,使用者就會登入父項專案。

Signature:

tenantId: string | null;

範例

// Set the tenant ID on Auth instance.
auth.tenantId = 'TENANT_PROJECT_ID';

// All future sign-in request now include tenant ID.
const result = await signInWithEmailAndPassword(auth, email, password);
// result.user.tenantId should be 'TENANT_PROJECT_ID'.

Auth.authStateReady()

會傳回承諾,在初次驗證狀態完成時立即解析。如果這項承諾作業解析,目前的使用者可能是有效的使用者,或者如果使用者已登出,則可能是 null

Signature:

authStateReady(): Promise<void>;

傳回:

Promise<void>

Auth.beforeAuthStateChanged()

新增在驗證狀態變更設定新使用者之前執行的封鎖回呼,以便設定新使用者。

Signature:

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

參數

參數 類型 說明
回呼 (user: User | null) => void | Promise<void> 會在設定新使用者值之前觸發回呼。如果擲回這則訊息,系統會禁止使用者設定。
onAbort () => void 當較新的 beforeAuthStateChanged() 回呼擲回時,會觸發回呼,以便您復原任何副作用。

傳回:

取消訂閱

Auth.onAuthStateChanged()

新增觀察器,觀察使用者登入狀態的變更。

如果想保留舊行為,請參閱 Auth.onIdTokenChanged()

Signature:

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

參數

參數 類型 說明
nextOrObserver NextOrObserver<User | null> 變更時觸發的回呼。
錯誤 ErrorFn 已淘汰,此回呼永遠不會觸發。我們會判斷登入/登出功能傳回的承諾,瞭解登入/登出錯誤。
已完成 CompleteFn 已淘汰,此回呼永遠不會觸發。

傳回:

取消訂閱

Auth.onIdTokenChanged()

新增觀察器,瞭解對已登入使用者 ID 權杖的變更。

這包括登入、登出和權杖更新事件。

Signature:

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

參數

參數 類型 說明
nextOrObserver NextOrObserver<User | null> 變更時觸發的回呼。
錯誤 ErrorFn 已淘汰,此回呼永遠不會觸發。我們會判斷登入/登出功能傳回的承諾,瞭解登入/登出錯誤。
已完成 CompleteFn 已淘汰,此回呼永遠不會觸發。

傳回:

取消訂閱

Auth.setPersistence()

變更 Auth 執行個體的持續性類型。

這項操作會影響目前儲存的驗證工作階段,並對日後登入要求 (包括透過重新導向要求登入) 套用這種持續性。

這可方便使用者登入,指定是否要記住自己的工作階段。此外,對於由其他使用者共用或具備機密資料的應用程式,您也能更輕鬆地保留應用程式的驗證狀態。

這個方法不適用於 Node.js 環境。

Signature:

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

參數

參數 類型 說明
持續性 持續保留 要使用的永久性

傳回:

Promise<void>

範例

auth.setPersistence(browserSessionPersistence);

Auth.signOut()

登出目前的使用者。這項操作不會自動撤銷使用者的 ID 權杖。

使用 FirebaseServerApp 建立的 Auth 執行個體不支援這個方法。

Signature:

signOut(): Promise<void>;

傳回:

Promise<void>

Auth.updateCurrentUser()

Auth 執行個體上,以非同步方式將您提供的使用者設為 Auth.currentUser

將建立使用者的新執行個體副本,並將其設定為 currentUser。

這會觸發 Auth.onAuthStateChanged()Auth.onIdTokenChanged() 監聽器,就像其他登入方法一樣。

如果要更新的使用者屬於其他 Firebase 專案,作業就會失敗。

Signature:

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

參數

參數 類型 說明
使用者 使用者 | 空值 新的使用者

傳回:

Promise<void>

Auth.useDeviceLanguage()

將目前的語言設為預設的裝置/瀏覽器偏好設定。

Signature:

useDeviceLanguage(): void;

傳回:

void