Auth interface

代表 Firebase Auth 服務的介面。

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

簽名:

export interface Auth 

屬性

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

方法

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

Auth.app

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

簽名:

readonly app: FirebaseApp;

Auth.config

用於初始化這個執行個體的 Config

簽名:

readonly config: Config;

Auth.currentUser

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

簽名:

readonly currentUser: User | null;

Auth.emulatorConfig

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

簽名:

readonly emulatorConfig: EmulatorConfig | null;

Auth.languageCode

Auth 執行個體的語言代碼。

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

簽名:

languageCode: string | null;

Auth.name (驗證名稱)

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

簽名:

readonly name: string;

Auth.settings

Auth 執行個體的設定。

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

簽名:

readonly settings: AuthSettings;

Auth.用戶群 ID

Auth 執行個體的用戶群 ID。

這是可讀取/寫入的屬性。您設定 Auth 執行個體的用戶群 ID 後,所有日後的登入/註冊作業都會傳送這個用戶群 ID,然後登入或為使用者註冊指定的用戶群專案。如果設為空值,使用者就會登入上層專案。

簽名:

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 (使用者登出)。

簽名:

authStateReady(): Promise<void>;

傳回:

承諾<void>

Auth.beforeAuthStateChanged()

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

簽名:

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

參數

參數 類型 說明
回呼 (使用者:使用者 | 空值) =>void |承諾<void> 系統會在設定新使用者價值前觸發回呼。如果擲回此情況,系統會禁止該使用者進行設定。
onAbort () =>void 當之後的 beforeAuthStateChanged() 回呼擲回時觸發回呼,可讓您復原任何副作用。

傳回:

取消訂閱

Auth.onAuthStateChanged()

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

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

簽名:

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

參數

參數 類型 說明
NextOrObserver NextOrObserver<使用者 |空值> 發生變更時觸發回呼。
錯誤 ErrorFn 已淘汰,系統從未觸發這個回呼。登入/登出函式傳回的承諾中,可能會出現登入/登出錯誤。
已完成 CompleteFn 已淘汰,系統從未觸發這個回呼。

傳回:

取消訂閱

Auth.onIdTokenChanged()

新增觀察器,以變更登入使用者 ID 權杖的變更。

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

簽名:

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

參數

參數 類型 說明
NextOrObserver NextOrObserver<使用者 |空值> 發生變更時觸發回呼。
錯誤 ErrorFn 已淘汰,系統從未觸發這個回呼。登入/登出函式傳回的承諾中,可能會出現登入/登出錯誤。
已完成 CompleteFn 已淘汰,系統從未觸發這個回呼。

傳回:

取消訂閱

Auth.setPersistence()

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

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

這樣一來,使用者就能輕鬆登入帳戶,指定是否要記住自己的工作階段。如此一來,對於由其他使用者共用或擁有機密資料的應用程式,您也能更輕鬆地保留驗證狀態。

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

簽名:

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

參數

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

傳回:

承諾<void>

範例

auth.setPersistence(browserSessionPersistence);

Auth.signOut()

將目前的使用者登出。這麼做並不會自動撤銷使用者的 ID 權杖。

透過 FirebaseServerApp 建立的 Auth 執行個體不支援此方法。

簽名:

signOut(): Promise<void>;

傳回:

承諾<void>

Auth.updateCurrentUser()

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

系統會建立使用者提供的新執行個體副本,並將其設為 currentUser。

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

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

簽名:

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

參數

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

傳回:

承諾<void>

Auth.useDeviceLanguage()

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

簽名:

useDeviceLanguage(): void;

傳回:

void