在 Android 應用程式中新增 Firebase 電話號碼驗證

1. 總覽

Firebase 電話號碼驗證 (Firebase PNV 或 FPNV) 是一種更快速且更安全的電話號碼驗證方法。與以簡訊為基礎的驗證不同,Firebase 電話號碼驗證功能不需要使用者接收並輸入簡訊中的驗證碼,而是透過單一輕觸動作,直接從連線的電信業者取得裝置中 SIM 卡的電話號碼。這樣一來,使用者操作流程會更順暢,且由於不需依賴簡訊傳送,可靠性也更高,同時還能避免簡訊遭濫用。

Firebase PNV 彈出式對話方塊

在本程式碼研究室中,您將瞭解如何建構「餐廳搜尋器」AI 語音代理程式,在確認訂位前,使用 Firebase 電話號碼驗證功能驗證使用者的電話號碼。

事前準備

  • 最新版 Android Studio
  • 搭載 API 級別 26 以上版本的 Android 裝置或模擬器

課程內容

  • 使用 Firebase PNV 設定 Firebase 專案。
  • 測試模式下使用 Firebase PNV 進行原型設計,不必使用帳單帳戶或實體 SIM 卡。
  • 將 Firebase PNV SDK 整合到 Android 應用程式中。
  • 使用單一通話 API 驗證電話號碼。
  • (選用) 準備發布正式版應用程式。

2. 設定範例專案

建立 Firebase 專案

  1. 使用 Google 帳戶登入 Firebase 控制台
  2. 按一下按鈕建立新專案,然後輸入專案名稱 (例如 Tera Bites)。
  3. 按一下「繼續」
  4. 如果系統提示,請詳閱並接受 Firebase 條款,然後按一下「繼續」
  5. (選用) 在 Firebase 控制台中啟用 AI 輔助功能 (稱為「Gemini in Firebase」)。
  6. 本程式碼研究室不需要 Google Analytics,因此請關閉 Google Analytics 選項。
  7. 按一下「建立專案」,等待專案佈建完成,然後按一下「繼續」

下載程式碼

執行下列指令,複製本程式碼研究室的程式碼範例:

git clone https://github.com/GoogleCloudPlatform/devrel-demos
cd codelabs/firebase-pnv-android

在 Android Studio 中開啟 firebase-pnv-android 目錄。

將 Android 專案連結至 Firebase

  1. 在 Firebase 控制台的專案總覽頁面中央,按一下「Android」圖示或「新增應用程式」,啟動應用程式建立工作流程。
  2. 在「Android 套件名稱」欄位中,輸入應用程式的套件名稱:com.google.firebase.example.fpnv
  3. 按一下 [Register app] (註冊應用程式)
  4. 按照操作說明下載 google-services.json 檔案,然後移至剛才下載的程式碼的 app/ 目錄。
  5. 點選「下一步」。

啟用 Firebase AI Logic

本程式碼實驗室會使用 Firebase AI Logic 驅動 AI 語音代理。如要在 Firebase 專案中啟用 Firebase AI Logic,請按照下列步驟操作:

  1. 在 Firebase 控制台中,依序前往「AI 服務」 >「AI 邏輯」
  2. 按一下「開始使用」
  3. 按一下「開始使用這個 API」,選擇使用 Gemini Developer API
  4. 按一下「啟用 API」並確認。

3. 在測試模式下設定 Firebase PNV

測試模式可讓您使用測試權杖,驗證開發用的「虛擬」電話號碼。

加入 Google 系統服務公開測試版計畫

如要使用測試模式,請在 Google 系統服務 Beta 版管道註冊開發裝置:

  1. 瀏覽至「Android App Testing - Google system services」(Android 應用程式測試 - Google 系統服務) 頁面
  2. 按一下 [成為測試人員]

你現在已成為 Google 系統服務的 Beta 版測試人員。

新增 Firebase PNV 依附元件

在 Android 專案的程式碼集,Firebase PNV 和 Firebase AI Logic 程式庫的依附元件已在 /gradle/versions.toml 檔案中定義:

[versions]
# ... other dependencies
firebaseBom = "34.12.0"

[libraries]
# ... other libraries
firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" }
firebase-ai-logic = { module = "com.google.firebase:firebase-ai" }
firebase-pnv = { module = "com.google.firebase:firebase-pnv" }

在模組 (應用程式層級) Gradle 檔案 (通常為 /app/build.gradle.kts) 中,宣告 Firebase PNV 程式庫的依附元件:

dependencies {
  // ... other dependencies
  implementation(platform(libs.firebase.bom))
  implementation(libs.firebase.ai.logic)

  // Add this line
  implementation(libs.firebase.pnv)

  // ...
}

產生測試權杖

  1. 在 Firebase 控制台中,依序前往「安全性」 >「電話號碼驗證」
  2. 選取「測試」分頁標籤。
  3. 選取測試用電話號碼的國家/地區代碼,然後按一下「產生權杖」
  4. 複製產生的權杖字串。

在程式碼中啟用測試工作階段

  1. 返回 Android 專案,開啟 ChatViewModel.kt 檔案,然後找到 verifyPhoneNumber() 函式。
  2. 初始化 FirebasePhoneNumberVerification 用戶端並啟用測試工作階段,然後貼上從 Firebase 控制台複製的權杖:
    suspend fun verifyPhoneNumber(): String {
        // Initialize Firebase Phone Number Verification
        val fpnv = FirebasePhoneNumberVerification.getInstance(context!!)
    
        // Enable Test session
        fpnv.enableTestSession("PASTE_THE_TOKEN_YOU_COPIED_IN_PREV_STEP")
    
        // Trigger the Firebase PNV pop up
        val response = fpnv.getVerifiedPhoneNumber().await()
        val phoneNumber = response.getPhoneNumber()
    
        return phoneNumber
    }
    

4. 執行應用程式

您已導入 Firebase PNV,現在可以執行應用程式。

  1. 在 Android Studio 中按一下「Run」,在 Android 模擬器或實體裝置上啟動應用程式。
  2. 應用程式啟動後,您會看到類似下圖的畫面:
    Firebase PNV 應用程式執行中
  3. 按一下「發起通話」,然後自我介紹。
    Firebase PNV 應用程式執行中
  4. AI 語音服務專員會提示你提供預訂詳細資料。提供詳細資料後,系統應會提示你查看螢幕,驗證電話號碼:
    Firebase PNV 應用程式執行中
  5. 完成後,畫面上會顯示驗證完成訊息:
    Firebase PNV 應用程式執行中
  6. 按一下「結束工作階段」即可終止通話。

5. (選用) 升級至正式環境模式

升級 Firebase 定價方案

如要在正式版模式中使用 Firebase PNV,Firebase 專案必須採用即付即用 (Blaze) 定價方案,也就是連結至 Cloud Billing 帳戶

  • Cloud Billing 帳戶需要付款方式,例如信用卡。
  • 如果您剛開始使用 Firebase 和 Google Cloud,請確認是否符合 $300 美元抵免額和免費試用 Cloud Billing 帳戶的資格。
  • 如果您是在活動中進行這項程式碼研究室,請詢問主辦單位是否有可用的 Cloud 抵免額。

如要將專案升級至 Blaze 方案,請按照下列步驟操作:

  1. 在 Firebase 控制台中,選取「升級方案」
  2. 選取 Blaze 方案。按照畫面上的指示,將 Cloud Billing 帳戶連結至專案。
    如果你在升級過程中需要建立 Cloud Billing 帳戶,可能需要返回 Firebase 控制台的升級流程,才能完成升級。

啟用 Firebase PNV 製作模式

  1. 新增應用程式的 SHA-256 指紋:
    1. 在 Firebase 控制台中,依序前往「設定」 >「一般」頁面
    2. 向下捲動至「你的應用程式」資訊卡,然後找出 Android 應用程式。
    3. 在「SHA 憑證指紋」欄位中,新增 SHA-256 指紋。如要瞭解如何取得應用程式的 SHA-256 指紋,請參閱「驗證用戶端」。
  2. 返回「安全性」 >「手機驗證」。
  3. 按一下「設定製作」。您會看到專案中將啟用正式版群組的應用程式清單,並可新增其他應用程式。
  4. 提交應用程式以進行 OAuth 品牌驗證和隱私權政策審查。Google Cloud 會驗證您是否清楚且正確地識別應用程式及其隱私權政策。
    如要開始審查,請按一下「在 Google Cloud 中繼續」。這項程序有時可能需要 24 小時以上。
  5. 等待品牌驗證期間,請詳閱 Firebase PNV 服務專屬條款 (連結位於控制台中)。
  6. 應用程式通過品牌驗證後,請勾選核取方塊確認服務專屬條款,然後按一下「啟用」

Firebase PNV 現已在實際工作環境模式中啟用。

移除測試代碼

在 Android 專案中,刪除 fpnv.enableTestSession(...) 行。

將 Firebase AI Logic 遷移至 Vertex AI

如果帳單帳戶中有抵免額,則無法用於 Gemini 開發人員 API。但您可以透過 Vertex AI Gemini API 使用這些模型。

  1. 在 Firebase 控制台中,依序前往「AI 服務」 >「AI 邏輯」
  2. 按一下「設定」
  3. 在「Vertex AI Gemini API」下方,按一下「啟用」
  4. 在 Android 專案中,將 Firebase AI Logic 初始化設定變更為使用 Vertex AI 後端,而非 Google AI:
    val model = Firebase.ai(
        backend = GenerativeBackend.vertexAI(location = "us-central1")
    ).liveModel(
        modelName = "gemini-live-2.5-flash-native-audio",
        // ... other configuration
    )
    

6. 恭喜!

您已成功將 Firebase 電話號碼驗證功能整合至 Android 應用程式!

涵蓋內容

  • 為 Firebase PNV 設定專案。
  • 使用測試模式進行原型設計。
  • 導入 Firebase PNV 單一呼叫 API。
  • 升級至正式環境模式。

後續步驟