Как добавить в приложение для Android подтверждение номера телефона с помощью Firebase

1. Обзор

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

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

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

Требования

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

Функции, которые вы освоите:

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

2. Как настроить пример проекта

Создать проект Firebase

  1. Войдите в консоль Firebase, используя аккаунт Google.
  2. Нажмите кнопку, чтобы создать новый проект, и введите его название (например, Tera Bites).
  3. Нажмите Продолжить.
  4. Если появится запрос, ознакомьтесь с условиями использования Firebase и примите их, а затем нажмите Продолжить.
  5. (Необязательно.) Включите помощь от ИИ в консоли Firebase (Gemini в Firebase).
  6. Для этой практической работы Google Аналитика не нужна, поэтому отключите ее.
  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. Нажмите Register app (Зарегистрировать приложение).
  4. Следуйте инструкциям, чтобы скачать файл google-services.json, и переместите его в каталог app/ скачанного кода.
  5. Нажмите Далее.

Как включить Firebase AI Logic

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

  1. В консоли Firebase выберите Сервисы ИИ > Логика ИИ.
  2. Нажмите Начать.
  3. Чтобы использовать Gemini Developer API, нажмите Начать работу с этим API.
  4. Выполните остальные шаги настройки.

3. Как настроить Firebase PNV в тестовом режиме

В тестовом режиме можно подтвердить фиктивный номер телефона с помощью тестового токена.

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

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

  1. Перейдите на страницу Тестирование приложений Android – системные сервисы Google.
  2. Нажмите Участвовать в тестировании.

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

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

В базе кода проекта для Android зависимости для библиотек Firebase PNV и Firebase AI Logic уже определены в файле /gradle/versions.toml:

[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 модуля (на уровне приложения), который обычно называется /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()
    
        // 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. Запустите приложение

После того как вы реализовали PNV Firebase, запустите приложение.

  1. В Android Studio нажмите Run (Запустить), чтобы запустить приложение в эмуляторе Android или на физическом устройстве.
  2. После запуска приложения вы увидите экран, похожий на этот:
    Приложение Firebase PNV запущено
  3. Нажмите Начать звонок и представьтесь.
    Приложение Firebase PNV запущено
  4. ИИ-агент должен запросить у вас информацию о бронировании. После того как вы введете данные, на экране появится запрос на подтверждение номера телефона:
    Приложение Firebase PNV запущено
  5. После этого вы увидите экран с подтверждением:
    Приложение Firebase PNV запущено
  6. Чтобы завершить звонок, нажмите Завершить сеанс.

5. Как перейти в рабочий режим (необязательно)

Как перейти на платный тарифный план Firebase

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

Чтобы перейти на тарифный план Blaze, выполните следующие действия:

  1. В консоли Firebase выберите переход на другой тарифный план.
  2. Выберите тарифный план Blaze. Следуйте инструкциям на экране, чтобы связать платежный аккаунт Cloud с проектом.
    • Если вы используете для этой практической работы кредиты Google Cloud, то платежный аккаунт, скорее всего, называется Google Cloud Platform Trial Billing Account или My Billing Account.
    • Если вам пришлось создать платежный аккаунт Cloud в рамках обновления, возможно, вам потребуется вернуться к процессу обновления в консоли Firebase, чтобы завершить его.

Как включить режим производства PNV в Firebase

  1. Добавьте цифровой отпечаток SHA-256 приложения:
    1. В консоли Firebase выберите Настройки > Общие.
    2. Прокрутите вниз до карточки Ваши приложения и найдите нужное приложение для Android.
    3. В поле Цифровые отпечатки сертификата SHA добавьте отпечаток SHA-256. О том, как получить цифровой отпечаток сертификата SHA-256 для приложения, можно прочитать в разделе об аутентификации клиентов.
  2. Вернитесь в раздел Безопасность > Подтверждение номера телефона.
  3. Нажмите Настроить производственную среду. Вы увидите список приложений в проекте, которые будут включены для производства, и сможете добавить другие приложения.
  4. Отправьте приложение на подтверждение соответствия бренду по протоколу OAuth и проверку политики конфиденциальности. Google Cloud проверит, что вы четко и точно указали название приложения и его политику конфиденциальности.
    Чтобы начать проверку, нажмите Перейти в Google Cloud. Иногда это занимает 24 часа или больше.
  5. Пока вы ждете подтверждения бренда, ознакомьтесь с дополнительными условиями использования сервиса PNV в Firebase, ссылка на которые есть в консоли.
  6. После того как приложение пройдет проверку бренда, установите флажок, чтобы подтвердить согласие с условиями использования сервиса, и нажмите Включить.

Firebase PNV теперь активен в производственном режиме.

Как удалить тестовый код

В проекте для Android удалите строку fpnv.enableTestSession(...).

Как перейти с Firebase AI Logic на платформу агентов

Если в вашем платежном аккаунте есть средства, вы не сможете использовать их для Gemini Developer API. Однако их можно использовать с Gemini API платформы агентов.

  1. В консоли Firebase выберите Сервисы ИИ > Логика ИИ.
  2. Нажмите Настройки.
  3. В разделе Agent Platform Gemini API нажмите Включить.
  4. В проекте для Android измените инициализацию Firebase AI Logic, чтобы использовать серверную часть Agent Platform вместо ИИ от Google.
    val model = Firebase.ai(
        backend = GenerativeBackend.agentPlatform(location = "us-central1")
    ).liveModel(
        modelName = "gemini-live-2.5-flash-native-audio",
        // ... other configuration
    )
    

6. Поздравляем!

Вы успешно интегрировали подтверждение номера телефона Firebase в приложение для Android.

Что мы обсудили

  • Как настроить проект для Firebase PNV
  • Использование тестового режима для создания прототипов.
  • Реализация API Firebase для однократного вызова PNV.
  • Переход в рабочий режим.

Дальнейшие действия