1. 概要
Firebase の電話番号の確認(Firebase PNV または FPNV)は、電話番号をより迅速かつ安全に確認する方法です。SMS ベースの確認では、エンドユーザーがテキスト メッセージからコードを受け取って入力する必要がありますが、Firebase PNV では 1 回タップするだけで、接続された携帯通信会社からデバイスの SIM に割り当てられた電話番号を直接取得できます。これにより、エンドユーザーの負担が軽減され、SMS メッセージの配信に依存しないことで信頼性が向上し、SMS の使用時に一般的に悪用される不正行為を排除できます。

この Codelab では、Firebase 電話番号認証を使用してエンドユーザーの電話番号を確認してから、テーブルの予約を確定する「レストラン検索」AI 音声エージェントを構築する方法について学びます。
前提条件
- 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 アナリティクスは必要ないため、Google アナリティクスのオプションをオフに切り替えます。
- [プロジェクトを作成] をクリックし、プロジェクトのプロビジョニングが完了するまで待ってから、[続行] をクリックします。
コードをダウンロードする
次のコマンドを実行して、この 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 システム サービスの公開ベータ版プログラムに参加する
テストモードを使用するには、開発デバイスを Google システム サービスのベータ版チャンネルに登録します。
- [Android App Testing - Google system services] ページに移動します。
- [テスターになる] をクリックします。
これで、Google システム サービスのベータ版テスターになりました。
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 で [Run] をクリックして、Android エミュレータまたは実機でアプリを起動します。
- アプリが起動すると、次のような画面が表示されます。

- [通話を開始] をクリックし、自己紹介します。

- AI 音声エージェントから予約の詳細について尋ねられます。詳細情報を入力すると、画面に電話番号の確認を求めるメッセージが表示されます。

- 完了すると、確認完了画面が表示されます。

- [セッションを終了] をクリックして通話を終了します。
5. (省略可)本番環境モードにアップグレードする
Firebase のお支払いプランをアップグレードする
Firebase PNV を本番環境モードで使用するには、Firebase プロジェクトが従量課金制(Blaze)のお支払いプランに登録されている必要があります。つまり、Cloud 請求先アカウントにリンクされている必要があります。
- Cloud 請求先アカウントには、クレジット カードなどの支払い方法が必要です。
- 特別なプロモーション期間中や、イベントの一環としてこの Codelab を実施している場合は、Google Cloud クレジットを利用できることがあります(このページの上部のバナーなど)。
- Firebase と Google Cloud を初めて使用する場合は、$300 のクレジットと無料トライアル用 Cloud 請求先アカウントを利用できるかどうかご確認ください。
プロジェクトを Blaze プランにアップグレードする手順は次のとおりです。
- Firebase コンソールで、[プランをアップグレード] を選択します。
- Blaze プランを選択します。画面上の手順に沿って、Cloud 請求先アカウントをプロジェクトにリンクします。
- この Codelab で Google Cloud クレジットを申請した場合、請求先アカウントの名前は
Google Cloud Platform Trial Billing AccountまたはMy Billing Accountになっている可能性があります。 - このアップグレードの一環として Cloud 請求先アカウントを作成する必要があった場合は、Firebase コンソールのアップグレード フローに戻ってアップグレードを完了する必要がある場合があります。
- この Codelab で Google Cloud クレジットを申請した場合、請求先アカウントの名前は
Firebase PNV 本番環境モードを有効にする
- アプリの SHA-256 フィンガープリントを追加します。
- [セキュリティ] > [電話番号の確認] に戻ります。
- [製品版を設定] をクリックします。プロジェクト内のアプリのうち、本番環境で有効になるアプリのリストが表示されます。ここで、アプリを追加することもできます。
- OAuth ブランドの確認とプライバシー ポリシーの審査のためにアプリを送信します。Google Cloud は、アプリとそのプライバシー ポリシーが明確かつ正確に特定されていることを確認します。
審査を開始するには、[Google Cloud で続行] をクリックします。この処理には 24 時間以上かかることがあります。 - ブランドの確認を待っている間に、Firebase PNV サービス固有の規約(コンソールでリンクされています)をご確認ください。
- アプリのブランド認証が完了したら、チェックボックスをオンにしてサービス固有の規約に同意し、[有効にする] をクリックします。
Firebase PNV が本番環境モードで有効になりました。
テストコードを削除
Android プロジェクトで、fpnv.enableTestSession(...) 行を削除します。
Vertex AI を使用するように Firebase AI Logic を移行する
請求先アカウントでクレジットを使用している場合、Gemini Developer API でクレジットを使用することはできません。ただし、Vertex AI Gemini API で使用できます。
- Firebase コンソールで、[AI サービス] > [AI ロジック] に移動します。
- [設定] をクリックします。
- [Vertex AI Gemini API] で、[有効にする] をクリックします。
- Android プロジェクトで、Firebase AI Logic の初期化を Google AI ではなく Vertex 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 トークンを確認する方法をご覧ください。
- 料金と割り当てを確認します。