Добавьте проверку номера телефона Firebase в ваше Android-приложение.

1. Обзор

Проверка телефонных номеров с помощью Firebase (Firebase PNV или FPNV) — это более быстрый и безопасный метод проверки телефонных номеров. В отличие от SMS-проверки, которая требует от конечных пользователей получения и ввода кода из текстового сообщения, Firebase PNV работает путем получения телефонного номера, присвоенного SIM-карте в устройстве, непосредственно от подключенного оператора связи одним касанием. Это упрощает работу для конечного пользователя, повышает надежность, поскольку не зависит от доставки SMS-сообщений, и исключает возможности злоупотреблений, часто используемые при использовании SMS.

Всплывающее диалоговое окно Firebase PNV

В этом практическом занятии вы узнаете, как создать голосового агента на основе ИИ для поиска ресторанов, который использует Firebase Phone Number Verification для проверки номера телефона конечного пользователя перед подтверждением бронирования столика.

Предварительные требования

  • Последняя версия Android Studio
  • Устройство Android или эмулятор с API уровня 26 или выше.

Что вы узнаете

  • Настройте проект Firebase с помощью Firebase PNV.
  • Используйте Firebase PNV в тестовом режиме для создания прототипов без платежного аккаунта или реальной SIM-карты.
  • Интегрируйте SDK Firebase PNV в Android-приложение.
  • Подтвердите номер телефона, используя API для одного звонка.
  • (Необязательно) Подготовьте ваше приложение к запуску в производство.

2. Настройте тестовый проект.

Создайте проект Firebase.

  1. Войдите в консоль Firebase, используя свою учетную запись Google.
  2. Нажмите кнопку, чтобы создать новый проект, а затем введите название проекта (например, Tera Bites ).
  3. Нажмите «Продолжить» .
  4. Если появится запрос, ознакомьтесь с условиями использования Firebase и примите их, после чего нажмите «Продолжить» .
  5. (Необязательно) Включите помощь ИИ в консоли Firebase (в Firebase она называется "Gemini").
  6. Для этого практического занятия вам не понадобится Google Analytics, поэтому отключите эту опцию.
  7. Нажмите «Создать проект» , дождитесь завершения подготовки проекта, а затем нажмите «Продолжить» .

Скачать код

Выполните следующие команды, чтобы клонировать пример кода для этого практического занятия:

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

Откройте каталог firebase-pnv-android в Android Studio.

Подключите свой Android-проект к Firebase.

  1. В консоли Firebase, в центре страницы обзора проекта, нажмите на значок Android или «Добавить приложение» , чтобы запустить процесс создания приложения.
  2. В поле «Имя пакета Android» введите имя пакета приложения: com.google.firebase.example.fpnv .
  3. Нажмите «Зарегистрировать приложение» .
  4. Следуйте инструкциям, чтобы загрузить файл google-services.json и переместить его в каталог app/ загруженного вами кода.
  5. Нажмите «Далее» .

Включить логику искусственного интеллекта Firebase

В этом практическом занятии для работы голосового агента с искусственным интеллектом используется Firebase AI Logic. Чтобы включить Firebase AI Logic в вашем проекте Firebase:

  1. В консоли Firebase перейдите в раздел AI Services > AI Logic .
  2. Нажмите « Начать» .
  3. Чтобы начать работу с API Gemini Developer , нажмите кнопку « Начать работу с этим API» .
  4. Нажмите «Включить API» и подтвердите.

3. Настройте Firebase PNV в тестовом режиме.

В тестовом режиме можно проверить "поддельный" номер телефона, используя тестовый токен для целей разработки.

Присоединяйтесь к программе публичного бета-тестирования системных сервисов Google.

Для использования тестового режима зарегистрируйте своё устройство для разработки в бета-канале системных служб Google :

  1. Перейдите на страницу «Тестирование приложений Android — системные службы Google» .
  2. Нажмите «Стать тестировщиком» .

Теперь вы являетесь бета-тестером системных сервисов Google.

Добавьте зависимость Firebase PNV.

В коде вашего Android-проекта зависимости для библиотек Firebase PNV и Firebase AI Logic уже определены. /gradle/versions.toml Файл /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 нажмите кнопку «Запустить» , чтобы запустить приложение в эмуляторе Android или на физическом устройстве.
  2. После запуска приложения вы увидите экран, который выглядит примерно так:
    Приложение Firebase PNV запущено
  3. Нажмите «Начать звонок» и представьтесь.
    Приложение Firebase PNV запущено
  4. Голосовой агент на основе ИИ должен запросить у вас данные бронирования. После того, как вы предоставите данные, он предложит вам посмотреть на экран, чтобы подтвердить свой номер телефона.
    Приложение Firebase PNV запущено
  5. После этого вы увидите экран с сообщением «Проверка завершена»:
    Приложение Firebase PNV запущено
  6. Нажмите «Завершить сессию» , чтобы завершить вызов.

5. (Необязательно) Переход в производственный режим

Обновите свой тарифный план Firebase.

Для использования Firebase PNV в производственном режиме ваш проект Firebase должен быть подключен к тарифному плану с оплатой по мере использования (Blaze) , то есть он должен быть связан с учетной записью Cloud Billing .

Чтобы перейти на тарифный план 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.

Если вы используете кредиты в своем платежном аккаунте, вы не сможете использовать их с API разработчика Gemini. Но вы сможете использовать их с API Vertex AI Gemini.

  1. В консоли Firebase перейдите в раздел AI Services > AI Logic .
  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.
  • Использование тестового режима для прототипирования.
  • Реализация API Firebase PNV с одним вызовом.
  • Переход в производственный режим.

Следующие шаги