На этой странице описано, как начать использовать Firebase Phone Number Verification в приложении Android. Общее описание этой функции см. в разделе « Обзор» .
Следуя инструкциям на этой странице, вы сможете быстро начать внедрение пользовательских сценариев для Firebase PNV . Для тестирования вы сгенерируете только тестовый токен, который будет соответствовать фиктивному номеру телефона. Используя этот тестовый токен, вы сможете начать добавлять Firebase PNV в свое приложение без необходимости в платежном аккаунте или устройстве с реальной SIM-картой.
После того, как вы убедитесь, что пользовательский интерфейс Firebase PNV в вашем приложении вас устраивает, вы можете выполнить несколько дополнительных шагов для запуска приложения в продакшене.
Прежде чем начать
Добавьте Firebase в свой Android-проект, если вы еще этого не сделали.
Для использования тестового режима устройство, на котором запущено ваше приложение, должно быть зарегистрировано в программе публичного бета-тестирования системных служб Google . Инструкции по регистрации см. на странице по ссылке.
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:34.12.0")) // 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:16.0.0") }
2. Инициализируйте библиотеку Firebase PNV в тестовом режиме.
На вкладке «Тестирование» в разделе «Проверка номера телефона» консоли Firebase нажмите кнопку «Сгенерировать токен» .
В вашем приложении инициализируйте клиент Firebase PNV для использования тестовой сессии:
Kotlin
Импортируйте библиотеку:
import com.google.firebase.pnv.FirebasePhoneNumberVerificationСоздайте новый экземпляр класса
FirebasePhoneNumberVerificationи используйте этот экземпляр для всех вызовов Firebase PNV . МетодgetInstance()не возвращает объект-синглтон, поэтому его необходимо сохранить после создания.val fpnv = FirebasePhoneNumberVerification.getInstance(this@MainActivity)Включите тестовую сессию, используя токен, сгенерированный на предыдущем шаге:
fpnv.enableTestSession("COPIED_TOKEN_STRING")Этот метод необходимо вызывать только один раз для экземпляра класса
FirebasePhoneNumberVerification; последующие вызовы приведут к ошибке.
Срок действия тестовых токенов составляет 7 дней; по истечении этого периода вам потребуется сгенерировать новый токен для активации тестовых сессий. Тестовые токены работают на физических устройствах и эмуляторах, что делает их идеальными для прототипирования пользовательского интерфейса вашего приложения или тестирования в рамках 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()
.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 и интеграции с бэкэндом вашего приложения вы можете запустить его в рабочую среду, чтобы начать получать реальные подтвержденные номера телефонов. См. раздел «Переход в рабочий режим» .