Если после регистрации приложения для App Check вы хотите запустить его в среде, которую 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.0.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.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());
Запустите приложение и инициируйте вызов бэкенд-службы Firebase. Локальный токен отладки будет зарегистрирован, когда SDK попытается отправить запрос к бэкенду. Например:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
В разделе App Check консоли Firebase выберите «Управление токенами отладки» в дополнительном меню приложения. Затем зарегистрируйте токен отладки, созданный на предыдущем шаге.
После регистрации токена внутренние службы Firebase примут его как действительный.
Поскольку этот токен позволяет получить доступ к ресурсам Firebase без действующего устройства, крайне важно сохранить его конфиденциальность. Не передавайте его в публичный репозиторий, а если зарегистрированный токен будет скомпрометирован, немедленно отзовите его в консоли Firebase .
Используйте поставщик отладки для модульного тестирования в среде CI
Чтобы использовать поставщик отладки для модульного тестирования в среде непрерывной интеграции (CI), выполните следующие действия.
В разделе App Check консоли Firebase выберите «Управление токенами отладки» в дополнительном меню приложения. Затем создайте новый токен отладки. Он понадобится вам на следующем шаге.
Поскольку этот токен позволяет получить доступ к ресурсам Firebase без действующего устройства, крайне важно сохранить его конфиденциальность. Не передавайте его в публичный репозиторий, а если зарегистрированный токен будет скомпрометирован, немедленно отзовите его в консоли Firebase .
Добавьте только что созданный вами токен отладки в защищенное хранилище ключей вашей системы CI (например, зашифрованные секреты 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:34.0.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.0.0") }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.0.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.0.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. }); } }
Когда ваше приложение работает в среде непрерывной интеграции, внутренние службы Firebase примут отправленный им токен как действительный.