1. 概览
Firebase 电话号码验证(Firebase PNV 或 FPNV)是一种更快、更安全的电话号码验证方法。基于短信的验证需要最终用户接收并输入短信中的验证码,而 Firebase PNV 只需用户点按一下,即可直接从已连接的运营商处获取设备中 SIM 卡的电话号码。这可减少最终用户遇到的阻碍,通过不依赖短信传递来提高可靠性,并消除使用短信时经常被利用的滥用途径。

在此 Codelab 中,您将学习如何构建“餐厅查找器”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”)。
- 对于此 Codelab,您不需要 使用 Google Analytics(分析),因此请关闭 Google Analytics(分析)选项。
- 点击创建项目,等待您的项目完成预配,然后点击继续。
下载代码
运行以下命令,克隆此 Codelab 的示例代码:
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。 - 点击注册应用 。
- 按照说明下载
google-services.json文件,并将其移到您刚刚下载的代码的app/目录中。 - 点击下一步 。
启用 Firebase AI Logic
此 Codelab 使用 Firebase AI Logic 为 AI 语音智能体提供支持。如需在 Firebase 项目中启用 Firebase AI Logic,请执行以下操作:
- 在 Firebase 控制台中,依次前往 AI 服务 > AI Logic。
- 点击开始使用 。
- 点击开始使用此 API ,选择使用 Gemini Developer API。
- 点击启用 API 并确认。
3. 在测试模式下设置 Firebase PNV
借助测试模式,您可以使用测试令牌验证“虚假”电话号码以进行开发。
加入 Google 系统服务公开 Beta 版计划
将开发设备注册到 Google 系统服务 Beta 版渠道,以使用测试模式:
- 浏览至 Android 应用测试 - Google 系统服务 页面。
- 点击成为测试人员 。
您现在是 Google 系统服务的 Beta 版测试人员。
添加 Firebase PNV 依赖项
在 Android 项目的代码库中,Firebase PNV 和 Firebase AI Logic 库的依赖项已在 文件中定义:
[versions]
# ... other dependencies
firebaseBom = "34.13.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)
// ...
}
生成测试令牌
- 在 Firebase 控制台中,依次前往安全性 > 电话验证。
- 选择测试 标签页。
- 选择测试电话号码对应的国家/地区代码,然后点击生成令牌 。
- 复制生成的令牌字符串。
在代码中启用测试会话
- 返回 Android 项目,打开
ChatViewModel.kt文件,然后找到verifyPhoneNumber()函数。 - 初始化
FirebasePhoneNumberVerification客户端并启用测试会话,粘贴从 Firebase 控制台复制的令牌:suspend fun verifyPhoneNumber(): String { // Initialize Firebase Phone Number Verification val fpnv = FirebasePhoneNumberVerification.getInstance() // Enable Test session fpnv.enableTestSession("PASTE_THE_TOKEN_YOU_COPIED_IN_PREV_STEP") // Trigger the Firebase PNV pop up val response = fpnv.getVerifiedPhoneNumber(context!!).await() val phoneNumber = response.getPhoneNumber() return phoneNumber }
4. 运行应用
现在您已实现 Firebase PNV,接下来需要运行应用。
- 在 Android Studio 中,点击运行 以在 Android 模拟器或实体设备上启动应用。
- 应用启动后,您应该会看到如下所示的屏幕:

- 点击发起通话 ,然后自我介绍。

- AI 语音智能体应提示您提供预订详细信息。提供详细信息后,它应提示您查看屏幕以验证电话号码:

- 完成后,您会看到验证完成屏幕:

- 点击结束会话 以终止通话。
5. (可选)升级到生产模式
升级您的 Firebase 定价方案
如需在 生产模式 下使用 Firebase PNV,您的 Firebase 项目必须采用 随用随付 (Blaze) 定价方案,这意味着该项目与一个 Cloud Billing 账号 相关联。
- Cloud Billing 账号要求提供支付方式,例如信用卡。
- 在特别促销期间,或者如果您在活动中完成此 Codelab,则可能会有 Google Cloud 抵用金可用(例如,此页面顶部的横幅)。
- 如果您刚开始接触 Firebase 和 Google Cloud,请确认您是否有资格获得 $300 赠金和免费试用 Cloud Billing 账号。
如需将项目升级到 Blaze 方案,请按以下步骤操作:
- 在 Firebase 控制台中,选择升级您的方案。
- 选择 Blaze 方案。按照屏幕上的说明将 Cloud Billing 账号关联到您的项目。
- 如果您为此 Codelab 申领了 Google Cloud 抵用金,则结算账号的名称很可能是
Google Cloud Platform Trial Billing Account或My Billing Account。 - 如果您需要创建 Cloud Billing 账号作为此升级的一部分,则可能需要返回 Firebase 控制台中的升级流程以完成升级。
- 如果您为此 Codelab 申领了 Google Cloud 抵用金,则结算账号的名称很可能是
启用 Firebase PNV 生产模式
- 添加应用的 SHA-256 指纹:
- 在 Firebase 控制台中,依次前往设置 > 常规 页面。
- 向下滚动到您的应用 卡片,然后找到您的 Android 应用。
- 在 SHA 证书指纹 字段中,添加您的 SHA-256 指纹。如需详细了解如何获取应用的 SHA-256 指纹,请参阅对客户端进行身份验证。
- 返回安全性 > 电话验证。
- 点击设置生产环境 。您将看到项目中将启用生产环境的应用列表,并有机会添加其他应用。
- 提交应用以进行 OAuth 品牌验证 和隐私权政策审核。Google Cloud 将验证您是否清楚准确地标识了应用及其隐私权政策。
如需开始审核,请点击 Google Cloud 中的“继续”。此过程有时可能需要 24 小时或更长时间。 - 在等待品牌验证期间,请查看 Firebase PNV 服务专用条款,这些条款在控制台中提供了链接。
- 应用通过品牌验证后,请勾选相应复选框以确认服务专用条款,然后点击启用 。
Firebase PNV 现在在生产模式下处于活跃状态。
移除测试代码
在 Android 项目中,删除 fpnv.enableTestSession(...) 行。
迁移 Firebase AI Logic 以使用 Vertex AI
如果您在结算账号中使用抵用金,则无法将这些抵用金用于 Gemini Developer API。但您可以将它们用于 Vertex AI Gemini API。
- 在 Firebase 控制台中,依次前往 AI 服务 > AI Logic。
- 点击设置 。
- 在 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 令牌。
- 查看价格和配额。