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

在本程式碼研究室中,您將瞭解如何建構「餐廳搜尋器」AI 語音代理程式,在確認訂位前,使用 Firebase 電話號碼驗證功能驗證使用者的電話號碼。
事前準備
- 最新版 Android Studio
- 搭載 API 級別 26 以上版本的 Android 裝置或模擬器
課程內容
- 使用 Firebase PNV 設定 Firebase 專案。
- 在測試模式下使用 Firebase PNV 進行原型設計,不必使用帳單帳戶或實體 SIM 卡。
- 將 Firebase PNV SDK 整合到 Android 應用程式中。
- 使用單一通話 API 驗證電話號碼。
- (選用) 準備發布正式版應用程式。
2. 設定範例專案
建立 Firebase 專案
- 使用 Google 帳戶登入 Firebase 控制台。
- 按一下按鈕建立新專案,然後輸入專案名稱 (例如
Tera Bites)。
- 按一下「繼續」。
- 如果系統提示,請詳閱並接受 Firebase 條款,然後按一下「繼續」。
- (選用) 在 Firebase 控制台中啟用 AI 輔助功能 (稱為「Gemini in Firebase」)。
- 本程式碼研究室不需要 Google Analytics,因此請關閉 Google Analytics 選項。
- 按一下「建立專案」,等待專案佈建完成,然後按一下「繼續」。
下載程式碼
執行下列指令,複製本程式碼研究室的程式碼範例:
git clone https://github.com/GoogleCloudPlatform/devrel-demos
cd codelabs/firebase-pnv-android
在 Android Studio 中開啟 firebase-pnv-android 目錄。
將 Android 專案連結至 Firebase
- 在 Firebase 控制台的專案總覽頁面中央,按一下「Android」圖示或「新增應用程式」,啟動應用程式建立工作流程。
- 在「Android 套件名稱」欄位中,輸入應用程式的套件名稱:
com.google.firebase.example.fpnv。 - 按一下 [Register app] (註冊應用程式)。
- 按照操作說明下載
google-services.json檔案,然後移至剛才下載的程式碼的app/目錄。 - 點選「下一步」。
啟用 Firebase AI Logic
本程式碼實驗室會使用 Firebase AI Logic 驅動 AI 語音代理。如要在 Firebase 專案中啟用 Firebase AI Logic,請按照下列步驟操作:
3. 在測試模式下設定 Firebase PNV
測試模式可讓您使用測試權杖,驗證開發用的「虛擬」電話號碼。
加入 Google 系統服務公開測試版計畫
如要使用測試模式,請在 Google 系統服務 Beta 版管道註冊開發裝置:
你現在已成為 Google 系統服務的 Beta 版測試人員。
新增 Firebase PNV 依附元件
在 Android 專案的程式碼集,Firebase PNV 和 Firebase AI Logic 程式庫的依附元件已在 檔案中定義:
[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 檔案 (通常為 ) 中,宣告 Firebase PNV 程式庫的依附元件:
dependencies {
// ... other dependencies
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.ai.logic)
// Add this line
implementation(libs.firebase.pnv)
// ...
}
產生測試權杖
在程式碼中啟用測試工作階段
- 返回 Android 專案,開啟
ChatViewModel.kt檔案,然後找到verifyPhoneNumber()函式。 - 初始化
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,現在可以執行應用程式。
- 在 Android Studio 中按一下「Run」,在 Android 模擬器或實體裝置上啟動應用程式。
- 應用程式啟動後,您會看到類似下圖的畫面:

- 按一下「發起通話」,然後自我介紹。

- AI 語音服務專員會提示你提供預訂詳細資料。提供詳細資料後,系統應會提示你查看螢幕,驗證電話號碼:

- 完成後,畫面上會顯示驗證完成訊息:

- 按一下「結束工作階段」即可終止通話。
5. (選用) 升級至正式環境模式
升級 Firebase 定價方案
如要在正式版模式中使用 Firebase PNV,Firebase 專案必須採用即付即用 (Blaze) 定價方案,也就是連結至 Cloud Billing 帳戶。
- Cloud Billing 帳戶需要付款方式,例如信用卡。
- 如果您剛開始使用 Firebase 和 Google Cloud,請確認是否符合 $300 美元抵免額和免費試用 Cloud Billing 帳戶的資格。
- 如果您是在活動中進行這項程式碼研究室,請詢問主辦單位是否有可用的 Cloud 抵免額。
如要將專案升級至 Blaze 方案,請按照下列步驟操作:
- 在 Firebase 控制台中,選取「升級方案」。
- 選取 Blaze 方案。按照畫面上的指示,將 Cloud Billing 帳戶連結至專案。
如果你在升級過程中需要建立 Cloud Billing 帳戶,可能需要返回 Firebase 控制台的升級流程,才能完成升級。
啟用 Firebase PNV 製作模式
- 新增應用程式的 SHA-256 指紋:
- 返回「安全性」 >「手機驗證」。
- 按一下「設定製作」。您會看到專案中將啟用正式版群組的應用程式清單,並可新增其他應用程式。
- 提交應用程式以進行 OAuth 品牌驗證和隱私權政策審查。Google Cloud 會驗證您是否清楚且正確地識別應用程式及其隱私權政策。
如要開始審查,請按一下「在 Google Cloud 中繼續」。這項程序有時可能需要 24 小時以上。 - 等待品牌驗證期間,請詳閱 Firebase PNV 服務專屬條款 (連結位於控制台中)。
- 應用程式通過品牌驗證後,請勾選核取方塊確認服務專屬條款,然後按一下「啟用」。
Firebase PNV 現已在實際工作環境模式中啟用。
移除測試代碼
在 Android 專案中,刪除 fpnv.enableTestSession(...) 行。
將 Firebase AI Logic 遷移至 Vertex AI
如果帳單帳戶中有抵免額,則無法用於 Gemini 開發人員 API。但您可以透過 Vertex AI Gemini API 使用這些模型。
- 在 Firebase 控制台中,依序前往「AI 服務」 >「AI 邏輯」。
- 按一下「設定」。
- 在「Vertex AI Gemini API」下方,按一下「啟用」。
- 在 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。
- 升級至正式環境模式。
後續步驟
- 瞭解如何自訂 Firebase PNV 流程。
- 瞭解如何驗證 Firebase PNV 權杖。
- 查看價格和配額。