Если после того, как вы зарегистрировали свое приложение для проверки приложений, вы хотите запустить свое приложение в среде, которую проверка приложений обычно не классифицирует как допустимую, например, в эмуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создайте сборку отладки вашего приложения, которая использует поставщик отладки App Check вместо реального поставщика аттестации.
Использование поставщика отладки в эмуляторе
Чтобы использовать поставщика отладки при интерактивном запуске приложения в эмуляторе (например, во время разработки), выполните следующие действия.
В файле Gradle вашего модуля (уровня приложения) (обычно
app/build.gradle
) объявите зависимость для библиотеки Android App Check:Kotlin+KTX
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:17.0.1' }
Java
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:17.0.1' }
В отладочной сборке настройте App Check для использования фабрики поставщика отладки:
Kotlin+KTX
Firebase.initialize(context = this) val firebaseAppCheck = FirebaseAppCheck.getInstance() firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
Запустите приложение и вызовите серверную службу Firebase. Локальный токен отладки будет зарегистрирован, когда пакет SDK попытается отправить запрос серверной части. Например:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
В разделе «Проверка приложений» консоли Firebase выберите «Управление токенами отладки» в дополнительном меню вашего приложения. Затем зарегистрируйте токен отладки, который вы зарегистрировали на предыдущем шаге.
После того, как вы зарегистрируете токен, серверные службы Firebase примут его как действительный.
Поскольку этот токен позволяет получить доступ к вашим ресурсам Firebase без действительного устройства, крайне важно, чтобы вы сохраняли его конфиденциальность. Не отправляйте его в общедоступный репозиторий, и если зарегистрированный токен когда-либо будет скомпрометирован, немедленно отзовите его в консоли Firebase.
Используйте поставщика отладки для модульного тестирования в среде CI
Чтобы использовать поставщика отладки для модульного тестирования в среде непрерывной интеграции (CI), выполните следующие действия.
В разделе «Проверка приложений» консоли Firebase выберите «Управление токенами отладки» в дополнительном меню вашего приложения. Затем создайте новый токен отладки. Токен понадобится вам на следующем шаге.
Поскольку этот токен позволяет получить доступ к вашим ресурсам Firebase без действительного устройства, крайне важно, чтобы вы сохраняли его конфиденциальность. Не отправляйте его в общедоступный репозиторий, и если зарегистрированный токен когда-либо будет скомпрометирован, немедленно отзовите его в консоли Firebase.
Добавьте только что созданный токен отладки в безопасное хранилище ключей вашей системы CI (например, зашифрованные секреты GitHub Actions или зашифрованные переменные Travis CI).
При необходимости настройте систему CI, чтобы сделать маркер отладки доступным в среде CI в качестве переменной среды. Назовите переменную примерно так
APP_CHECK_DEBUG_TOKEN_FROM_CI
.В вашем модуле (на уровне приложения) файл Gradle (обычно
app/build.gradle
):Объявите тестовую зависимость для библиотеки отладки Android App Check:
Kotlin+KTX
dependencies { androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:17.0.1' }
Java
dependencies { androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:17.0.1' }
Добавьте следующее в конфигурацию вашего варианта сборки CI:
testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
В своих тестовых классах используйте
DebugAppCheckTestHelper
для переноса любого кода, которому требуется токен проверки приложения:Kotlin+KTX
@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, серверные службы Firebase примут отправляемый им токен как действительный.