電子郵件連結驗證先前是依賴 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。