代表 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