После того, как для бэкэнд-сервиса будет активирована App Check , функции вашего приложения, зависящие от этого бэкэнд-сервиса, не будут работать в эмуляторе или в среде непрерывной интеграции (CI), поскольку эти среды не соответствуют критериям допустимых устройств. Чтобы запустить ваше приложение в этих средах во время разработки и тестирования, вам необходимо создать отладочную сборку приложения, использующую отладочный поставщик App Check вместо производственного поставщика аттестации.
Используйте отладочный провайдер в эмуляторе.
Вот как использовать отладочный провайдер при интерактивном запуске приложения в эмуляторе (например, во время локальной разработки):
В файл Gradle вашего модуля (уровня приложения) (обычно
<project>/<app-module>/build.gradle.ktsили<project>/<app-module>/build.gradle) добавьте зависимость от библиотеки App Check для Android. Мы рекомендуем использовать Firebase Android BoM для управления версиями библиотек.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.16.0")) // Add the dependencies for the App Check libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug") }
Использование Firebase Android BoM , что ваше приложение всегда будет использовать совместимые версии библиотек Firebase Android.
(Альтернативный вариант) Добавление зависимостей библиотеки Firebase без использования BoM
Если вы решите не использовать Firebase BoM , вам необходимо указать версию каждой библиотеки Firebase в строке зависимости.
Обратите внимание, что если вы используете несколько библиотек Firebase в своем приложении, мы настоятельно рекомендуем использовать BoM для управления версиями библиотек, что гарантирует совместимость всех версий.
dependencies { // Add the dependencies for the App Check libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug:19.3.0") }
В отладочной сборке настройте App Check для использования фабрики поставщиков отладки:
Kotlin
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
Получите свой отладочный токен:
Запустите приложение в эмуляторе или на тестовом устройстве.
Найдите в логах отладочный токен App Check . Например:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678Скопируйте токен (например,
123a4567-b89c-12d3-e456-789012345678).
Зарегистрируйте свой отладочный токен в App Check :
В консоли Firebase перейдите в раздел Безопасность > Проверка приложений > вкладка Приложения .
Найдите своё приложение, нажмите на меню с тремя точками ( ), а затем выберите «Управление отладочными токенами» .
Следуйте инструкциям на экране, чтобы зарегистрировать свой отладочный токен.

После регистрации токена в App Check ваши серверные службы будут считать его действительным.
Этот токен позволяет получить доступ к вашим серверным сервисам без действительного устройства, поэтому крайне важно хранить его в секрете. Не добавляйте его в общедоступный репозиторий и не включайте в производственные сборки вашего приложения. Если зарегистрированный токен будет скомпрометирован, немедленно удалите его с помощью функции «Управление отладочными токенами» в консоли Firebase .
Используйте отладчик для модульного тестирования в среде непрерывной интеграции (CI).
Вот как использовать отладочный провайдер для модульного тестирования в среде непрерывной интеграции (CI):
В консоли Firebase создайте отладочный токен:
В консоли Firebase перейдите в раздел Безопасность > Проверка приложений > вкладка Приложения .
Найдите своё приложение, нажмите на меню с тремя точками ( ), а затем выберите «Управление отладочными токенами» .
Следуйте инструкциям на экране, чтобы создать новый отладочный токен.
Этот токен позволяет получить доступ к вашим серверным сервисам без действительного устройства, поэтому крайне важно хранить его в секрете. Не добавляйте его в общедоступный репозиторий и не включайте в производственные сборки вашего приложения. Если зарегистрированный токен будет скомпрометирован, немедленно удалите его с помощью функции «Управление отладочными токенами» в консоли Firebase .

Добавьте созданный вами отладочный токен в защищенное хранилище ключей вашей системы CI (например, в зашифрованные секреты GitHub Actions или зашифрованные переменные Travis CI).
При необходимости настройте вашу систему CI так, чтобы ваш отладочный токен был доступен в среде CI в качестве переменной среды. Назовите переменную, например,
APP_CHECK_DEBUG_TOKEN_FROM_CI.В файл Gradle вашего модуля (уровня приложения) (обычно
<project>/<app-module>/build.gradle.ktsили<project>/<app-module>/build.gradle) добавьте зависимость от библиотеки App Check для Android. Мы рекомендуем использовать Firebase Android BoM для управления версиями библиотек.Kotlin
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.16.0")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug") }
Использование Firebase Android BoM , что ваше приложение всегда будет использовать совместимые версии библиотек Firebase Android.
(Альтернативный вариант) Добавление зависимостей библиотеки Firebase без использования BoM
Если вы решите не использовать Firebase BoM , вам необходимо указать версию каждой библиотеки Firebase в строке зависимости.
Обратите внимание, что если вы используете несколько библиотек Firebase в своем приложении, мы настоятельно рекомендуем использовать BoM для управления версиями библиотек, что гарантирует совместимость всех версий.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug:19.3.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.16.0")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug") }
Использование Firebase Android BoM , что ваше приложение всегда будет использовать совместимые версии библиотек Firebase Android.
(Альтернативный вариант) Добавление зависимостей библиотеки Firebase без использования BoM
Если вы решите не использовать Firebase BoM , вам необходимо указать версию каждой библиотеки Firebase в строке зависимости.
Обратите внимание, что если вы используете несколько библиотек Firebase в своем приложении, мы настоятельно рекомендуем использовать BoM для управления версиями библиотек, что гарантирует совместимость всех версий.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-debug:19.3.0") }
Добавьте следующее в конфигурацию вашего варианта сборки CI:
testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""В тестовых классах используйте
DebugAppCheckTestHelperдля обертывания любого кода, которому требуется токен App Check :Kotlin
@RunWith(AndroidJunit4::class) class MyTests { private val debugAppCheckTestHelper = DebugAppCheckTestHelper.fromInstrumentationArgs() @Test fun testWithDefaultApp() { debugAppCheckTestHelper.withDebugProvider { // Test code that requires a debug AppCheckToken. } } @Test fun testWithNonDefaultApp() { debugAppCheckTestHelper.withDebugProvider( FirebaseApp.getInstance("nonDefaultApp") ) { // Test code that requires a debug AppCheckToken. } } }Java
@RunWith(AndroidJunit4.class) public class YourTests { private final DebugAppCheckTestHelper debugAppCheckTestHelper = DebugAppCheckTestHelper.fromInstrumentationArgs(); @Test public void testWithDefaultApp() { debugAppCheckTestHelper.withDebugProvider(() -> { // Test code that requires a debug AppCheckToken. }); } @Test public void testWithNonDefaultApp() { debugAppCheckTestHelper.withDebugProvider( FirebaseApp.getInstance("nonDefaultApp"), () -> { // Test code that requires a debug AppCheckToken. }); } }
Когда ваше приложение работает в среде CI, ваши бэкэнд-сервисы будут принимать отправленный токен как действительный.