Если после того, как вы зарегистрировали свое приложение для проверки приложений, вы хотите запустить свое приложение в среде, которую проверка приложений обычно не классифицирует как допустимую, например, в эмуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создайте сборку отладки вашего приложения, которая использует поставщик отладки App Check вместо реального поставщика аттестации.
Использование поставщика отладки в эмуляторе
Чтобы использовать поставщика отладки при интерактивном запуске приложения в эмуляторе (например, во время разработки), выполните следующие действия.
В файле Gradle вашего модуля (на уровне приложения) (обычно
<project>/<app-module>/build.gradle.kts
или<project>/<app-module>/build.gradle
) добавьте зависимость для App Check Android-библиотека. Мы рекомендуем использовать Firebase Android BoM для управления версиями библиотеки.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // 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")
implementation("com.google.firebase:firebase-appcheck-ktx") }Используя 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:17.0.1")
implementation("com.google.firebase:firebase-appcheck-ktx:17.0.1") }Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // 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:17.0.1") }
В отладочной сборке настройте App Check для использования фабрики поставщика отладки:
Kotlin+KTX
Firebase.initialize(context = this) Firebase.appCheck.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 вашего модуля (на уровне приложения) (обычно
<project>/<app-module>/build.gradle.kts
или<project>/<app-module>/build.gradle
) добавьте зависимость для App Check Android-библиотека. Мы рекомендуем использовать Firebase Android BoM для управления версиями библиотеки.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing") }
Используя 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 androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing:17.0.1") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing") }
Используя 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 androidTestImplementation("com.google.firebase:firebase-appcheck-debug-testing:17.0.1") }
Добавьте следующее в конфигурацию вашего варианта сборки CI:
testInstrumentationRunnerArguments["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 примут отправляемый им токен как действительный.