После того как для бэкенд-службы будет включена проверка App Check, функции приложения, зависящие от этой службы, не будут работать в эмуляторе или среде непрерывной интеграции, поскольку эти среды не считаются действительными устройствами. Чтобы запустить приложение в этих средах во время разработки и тестирования, вам нужно создать отладочную сборку приложения, которая использует 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:35.0.2")) // 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:20.0.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 перейдите в раздел Security (Безопасность) > App Check (Проверка приложений) > Apps (Приложения).
Найдите приложение, нажмите на значок дополнительного меню () и выберите Управление токенами отладки.
Зарегистрируйте токен отладки, следуя инструкциям на экране.

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

Добавьте созданный токен отладки в хранилище ключей системы непрерывной интеграции, например в зашифрованные секреты GitHub Actions или зашифрованные переменные Travis 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:35.0.2")) // 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:20.0.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.2")) // 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:20.0.0") }
Добавьте в конфигурацию варианта сборки непрерывной интеграции следующий код:
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. }); } }
Когда ваше приложение работает в среде непрерывной интеграции, ваши серверные службы будут принимать отправляемый им токен как действительный.