電子郵件連結驗證先前仰賴 Firebase Dynamic Links,該服務將於 2025 年 8 月 25 日停用。我們在 Firebase Authentication Android SDK 23.2.0 以上版本和 Firebase BoM 33.9.0 以上版本中發布了替代解決方案。如果您的應用程式使用舊版連結,且您想使用替代方法遷移應用程式,請參閱「在 Android 中使用電子郵件連結透過 Firebase 進行驗證」,瞭解如何使用新的 Firebase Hosting 系統。
此外,如果您使用 Firebase Authentication Android SDK 20.0.0 以下版本 (或 Firebase BoM 26.0.0 以下版本) 透過 Firebase Authentication 管理 OAuth 流程,則必須更新至最新版 Authentication SDK 或 BoM (Authentication 20.0.0 以上版本或 BoM 26.0.0 以上版本),才能繼續在 Firebase Authentication 中管理 OAuth 流程。
將相關聯的 Firebase Dynamic Links 網域遷移至 Firebase Hosting 網域
日後,Firebase Authentication 將使用專案的 Firebase Hosting 預設網域,為行動應用程式中的電子郵件連結和其他頻外連結動作建立連結,而非使用 Firebase Dynamic Links 網域。這表示您也需要更新應用程式,將這個預設網域做為關聯網域,用於電子郵件驗證連結,連往您的行動應用程式。
您可以按照「在 Android 中使用電子郵件連結透過 Firebase 進行驗證」一文中的操作說明,更新行動應用程式連結,改用系統自動佈建的新 Firebase Hosting 預設網域。
請按照下列操作說明處理新網域的連結,並指示 Firebase Authentication 開始使用新網域,以便日後產生行動應用程式連結。
如要繼續使用任何自訂 Firebase Hosting 網域,或甚至將自訂 Firebase Dynamic Links 網域設為新的關聯網域,請按照您要使用的網域對應步驟操作。請注意,完成下一節的操作說明後,Firebase Dynamic Links 自訂網域的深層連結功能將會移除,只會保留網域本身,用於建立電子郵件連結。
設定 Android 應用程式來處理 Firebase Hosting 連結
- 如要透過 Android 應用程式處理這些連結,您必須在 Firebase 控制台專案設定中指定應用程式的套件名稱。此外,您也必須提供應用程式憑證的 SHA-1 和 SHA-256。
如要將這些 Firebase Hosting 連結重新導向至特定活動,您必須在
AndroidManifest.xml檔案中設定意圖篩選器。意圖篩選器應擷取網域的 Firebase Hosting 連結。在AndroidManifest.xml中:<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="https" android:host="PROJECT_ID.firebaseapp.com or a custom hosting domain" android:pathPrefix="/__/auth/links" /> </intent-filter>
當使用者開啟含有「/__/auth/links」路徑、您指定的配置和主機的託管連結時,應用程式會使用這個意圖篩選器啟動活動,以處理連結。
設定專案以使用新連結
準備好處理新的網域連結時,您可以使用 Firebase Admin SDK 更新電子郵件連結的產生方式,並指示後端開始使用新的 Firebase Hosting 網域產生連結。
import { getAuth } from 'firebase-admin/auth'; const updateEmailAuthDomain = async () => { const updateRequest = { mobileLinksConfig: { domain: 'HOSTING_DOMAIN', }, }; const projectConfigManager = getAuth().projectConfigManager(); try { const response = await projectConfigManager.updateProjectConfig(updateRequest); // Updated project config console.log('Project configuration updated successfully:', response); } catch (error) { console.error('Error updating the project:', error); } };傳送及兌換電子郵件連結
像往常一樣傳送電子郵件登入連結。使用者點選連結後,如果已安裝應用程式,系統會將他們重新導向至應用程式,完成登入程序。
自訂行動連結
您可以使用自訂 Firebase Hosting 網域,或重複使用自訂 Firebase Dynamic Links 網域做為新的行動連結網域。
使用自訂 Firebase Hosting 網域
- 請按照Firebase Hosting指南設定自訂網域。
- 設定 Android 應用程式,以便處理 Firebase Hosting 連結。(操作說明請見上一節)。
- 將驗證連結傳送至使用者的電子郵件地址,並使用更新後的
ActionCodeSettings物件,將自訂網域設為linkDomain。
重複使用自訂 Firebase Dynamic Links 網域
- 您可以重複使用任何 Firebase Dynamic Links 網域做為自訂網域。不過,系統將不再支援任何 Firebase Dynamic Links 功能 (例如,如果使用者的裝置未安裝應用程式,系統就無法將使用者重新導向至應用程式商店)。
- 設定 Android 應用程式來處理 Firebase Hosting 連結 (操作說明請見上一節)。
- 將驗證連結傳送至使用者的電子郵件地址,並使用更新後的
ActionCodeSettings物件,將自訂網域設為linkDomain。