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 逻辑。
- 点击开始使用。
- 点击开始使用此 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.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)
// ...
}
生成测试令牌
- 在 Firebase 控制台中,依次前往安全性 > 电话号码验证。
- 选择测试标签页。
- 选择测试电话号码对应的国家/地区代码,然后点击生成令牌。
- 复制生成的令牌字符串。
在代码中启用测试会话
- 回到 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 中,点击运行以在 Android 模拟器或实体设备中启动应用。
- 应用启动后,您应该会看到如下所示的界面:

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

- AI 语音助理应提示您提供预订详情。提供详细信息后,系统应会提示您查看屏幕以验证电话号码:

- 完成后,您会看到验证完成界面:

- 点击结束会话即可结束通话。
5. (可选)升级到生产模式
升级您的 Firebase 定价方案
如需在生产模式下使用 Firebase PNV,您的 Firebase 项目必须采用随用随付 (Blaze) 定价方案,这意味着该项目与一个 Cloud Billing 账号相关联。
- Cloud Billing 账号要求提供付款方式,例如信用卡。
- 如果您刚开始接触 Firebase 和 Google Cloud,请确认您是否有资格获得 $300 赠金和免费试用 Cloud Billing 账号。
- 如果您是在活动中完成此 Codelab,请询问活动组织者是否有可用的 Cloud 积分。
如需将项目升级到 Blaze 方案,请按以下步骤操作:
- 在 Firebase 控制台中,选择升级您的方案。
- 选择 Blaze 方案。按照屏幕上的说明将 Cloud Billing 账号与您的项目相关联。
如果您需要在此升级过程中创建 Cloud Billing 账号,则可能需要返回 Firebase 控制台中的升级流程以完成升级。
启用 Firebase PNV 生产模式
- 添加应用的 SHA-256 指纹:
- 在 Firebase 控制台中,前往设置 > 常规页面。
- 向下滚动到“您的应用”卡片,然后找到您的 Android 应用。
- 在 SHA 证书指纹字段中,添加您的 SHA-256 指纹。如需详细了解如何获取应用的 SHA-256 指纹,请参阅对客户端进行身份验证。
- 返回到安全性 > 手机验证。
- 点击设置正式版。您会看到项目中的应用列表,其中列出了将启用正式版的应用,并且您有机会添加其他应用。
- 提交应用以进行 OAuth 品牌验证和隐私权政策审核。Google Cloud 会验证您是否清晰准确地标识了您的应用及其隐私权政策。
如需开始审核,请点击 Proceed in 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 逻辑。
- 点击设置。
- 在 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 令牌。
- 查看价格和配额。