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

На этой странице рассказывается, как начать использовать Firebase Phone Number Verification в приложении для Android. Общее описание этой функции приведено в обзорной статье.

Следуя инструкциям на этой странице, вы сможете быстро начать реализацию путей пользователя для Firebase PNV. Для тестирования вы создадите токен, который будет разрешаться в поддельный номер телефона. С помощью этого тестового токена вы можете начать добавлять Firebase PNV в свое приложение, не используя платежный аккаунт или устройство с настоящей SIM-картой.

Когда вы будете довольны тем, как Firebase PNV работает в вашем приложении, вы можете выполнить дополнительные шаги, чтобы подготовить приложение к выпуску.

Подготовка

1. Добавьте библиотеку Firebase PNV в приложение

В файле Gradle на уровне модуля (приложения) (обычно это <project>/<app-module>/build.gradle.kts или <project>/<app-module>/build.gradle) добавьте зависимость для библиотеки Firebase Phone Number Verification для Android. Для управления версиями библиотек рекомендуем использовать Firebase Android BoM.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.0.1"))

    // Add the dependencies for the Firebase Phone Number Verification libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-pnv")
}

Благодаря Firebase Android BoM в вашем приложении всегда будут использоваться совместимые версии библиотек Firebase Android.

(Альтернативный вариант) Добавьте зависимости библиотеки Firebase без использования BoM.

Если вы не хотите использовать Firebase BoM, то должны указать версию каждой библиотеки Firebase в строке зависимости.

Если вы используете в приложении несколько библиотек Firebase, настоятельно рекомендуем управлять их версиями с помощью BoM. Это обеспечит совместимость всех версий.

dependencies {
    // Add the dependencies for the Firebase Phone Number Verification libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-pnv:17.0.0")
}

2. Инициализируйте библиотеку Firebase PNV в тестовом режиме

  1. В консоли Firebase перейдите в раздел Безопасность > Подтверждение по телефону > Тестирование.

  2. Нажмите Generate token (Создать токен).

  3. Инициализируйте клиент Firebase PNV в приложении, чтобы использовать тестовый сеанс:

    Kotlin

    Импортируйте библиотеку:

    import com.google.firebase.pnv.FirebasePhoneNumberVerification
    

    Создайте новый экземпляр класса FirebasePhoneNumberVerification и используйте его для всех вызовов Firebase PNV.

    val fpnv = FirebasePhoneNumberVerification.getInstance()
    

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

    fpnv.enableTestSession("COPIED_TOKEN_STRING")
    

    Этот метод можно вызвать только один раз для экземпляра FirebasePhoneNumberVerification. При последующих вызовах будет возникать ошибка.

Срок действия тестовых токенов составляет семь дней. По истечении этого периода вам нужно будет создать новый токен, чтобы включить тестовые сеансы. Тестовые токены работают на физических устройствах и эмуляторах, поэтому они идеально подходят для создания прототипов UX в вашем приложении или тестирования в CI/CD.

3. Рекомендуется: проверьте поддержку Firebase PNV

Чтобы определить, когда показывать интерфейс ввода номера или объяснения, при запуске приложения рекомендуется проверить, поддерживают ли устройство и его SIM-карта Firebase PNV. Это предварительная проверка, которая не требует согласия пользователя. Результат этой проверки поможет вам решить, использовать ли Firebase PNV или альтернативный метод подтверждения номера телефона, например SMS.

Чтобы проверить совместимость устройства, вызовите метод getVerificationSupportInfo(). Если у вас есть активный тестовый сеанс, этот метод вернет список, содержащий одну запись для активного тестового токена в вашем проекте. После того как вы запустите приложение в рабочей среде, этот метод будет возвращать результат для каждой SIM-карты в устройстве.

Kotlin

// Check all SIMs for support.
fpnv.getVerificationSupportInfo()
.addOnSuccessListener { results ->
  if (results.any { it.isSupported() }) {
    // At least one SIM is supported; okay to call getVerifiedPhoneNumber
    // (see the next step).
  } else {
    // No SIMs are supported, so fall back to SMS verification.
  }
}
.addOnFailureListener { e ->
  // Handle error.
}

4. Запуск процесса подтверждения

Чтобы запустить процесс Firebase PNV, вызовите метод getVerifiedPhoneNumber():

Kotlin

fpnv.getVerifiedPhoneNumber(this@MainActivity)
.addOnSuccessListener { result ->
  // In test mode, this phone number will have a valid country code,
  // followed by all zeros.
  val phoneNumber = result.getPhoneNumber()
  val token = result.getToken()

  // Verification successful. Send token to your backend. (See Next Steps.)
}
.addOnFailureListener { e ->
  // Handle failures, such as the user declining consent or a network error.
}

Метод getVerifiedPhoneNumber() выполняет весь процесс подтверждения номера телефона, в том числе:

  • Использование Менеджера учетных данных Android для получения согласия пользователя на передачу его номера телефона.
  • Отправка запроса в серверную часть Firebase PNV.
  • Возврат токена, содержащего подтвержденный номер телефона устройства (в рабочем приложении в этот момент происходит оплата).

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

  • На этой странице рассказывается, как интегрировать Firebase PNV с помощью унифицированного API с одним вызовом. Вызов одного метода обрабатывает весь путь пользователя Firebase PNV, от получения согласия пользователя до выполнения необходимых сетевых вызовов к серверной части Firebase PNV. При этом шаги интеграции сводятся к вызову одного метода.

    Этот API рекомендуется большинству разработчиков. Однако если у вас есть особые требования, которые не поддерживаются библиотекой, ознакомьтесь с информацией о реализации пользовательского процесса на странице Настройка процесса Firebase Phone Number Verification.

  • Если вы используете подтвержденный номер телефона за пределами клиента приложения, передавайте токен, а не сам номер телефона, чтобы вы могли проверить его целостность при использовании. Подробнее о том, как подтверждать токены Firebase PNV…

  • После того как вы реализовали и протестировали процесс Firebase PNV и интеграцию с серверной частью, вы можете запустить приложение в производство, чтобы начать получать реальные подтвержденные номера телефонов. См. Переход в производственный режим.