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