Uygulamanızı Uygulama Kontrolü için kaydettirdikten sonra, uygulamanızı Uygulama Kontrolü'nün normalde geçerli olarak sınıflandırmadığı bir ortamda, örneğin geliştirme sırasında öykünücü veya sürekli tümleştirme (CI) ortamından çalıştırmak isterseniz, şunları yapabilirsiniz: uygulamanızın gerçek bir doğrulama sağlayıcısı yerine Uygulama Kontrolü hata ayıklama sağlayıcısını kullanan bir hata ayıklama yapısı oluşturun.
Bir öykünücüde hata ayıklama sağlayıcısını kullanma
Uygulamanızı bir öykünücüde etkileşimli olarak çalıştırırken (örneğin geliştirme sırasında) hata ayıklama sağlayıcısını kullanmak için aşağıdakileri yapın:
Modülünüzde (uygulama düzeyinde) Gradle dosyanızda (genellikle
app/build.gradle
), App Check Android kitaplığının bağımlılığını bildirin:Kotlin+KTX
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:16.1.2' }
Java
dependencies { implementation 'com.google.firebase:firebase-appcheck-debug:16.1.2' }
Hata ayıklama yapınızda, Uygulama Denetimini hata ayıklama sağlayıcı fabrikasını kullanacak şekilde yapılandırın:
Kotlin+KTX
FirebaseApp.initializeApp(/*context=*/this) val firebaseAppCheck = FirebaseAppCheck.getInstance() firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance() )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
Uygulamayı başlatın ve bir Firebase arka uç hizmetine çağrı tetikleyin. SDK arka uca bir istek göndermeye çalıştığında, yerel bir hata ayıklama belirteci günlüğe kaydedilir. Örneğin:
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
Firebase konsolunun Uygulama Kontrolü bölümünde, uygulamanızın taşma menüsünden Hata ayıklama belirteçlerini yönet'i seçin. Ardından, önceki adımda oturum açtığınız hata ayıklama jetonunu kaydedin.
Belirteci kaydettikten sonra, Firebase arka uç hizmetleri bunu geçerli olarak kabul edecektir.
Bu belirteç, Firebase kaynaklarınıza geçerli bir cihaz olmadan erişim sağladığından, onu gizli tutmanız çok önemlidir. Halka açık bir depoya teslim etmeyin ve kayıtlı bir jetonun güvenliği ihlal edilirse, onu Firebase konsolunda hemen iptal edin.
Bir CI ortamında birim testi için hata ayıklama sağlayıcısını kullanın
Bir sürekli tümleştirme (CI) ortamında birim testi için hata ayıklama sağlayıcısını kullanmak için aşağıdakileri yapın:
Firebase konsolunun Uygulama Kontrolü bölümünde, uygulamanızın taşma menüsünden Hata ayıklama belirteçlerini yönet'i seçin. Ardından, yeni bir hata ayıklama belirteci oluşturun. Jetona bir sonraki adımda ihtiyacınız olacak.
Bu belirteç, Firebase kaynaklarınıza geçerli bir cihaz olmadan erişim sağladığından, onu gizli tutmanız çok önemlidir. Halka açık bir depoya teslim etmeyin ve kayıtlı bir jetonun güvenliği ihlal edilirse, onu Firebase konsolunda hemen iptal edin.
Yeni oluşturduğunuz hata ayıklama jetonunu CI sisteminizin güvenli anahtar deposuna ekleyin (örneğin, GitHub Actions'ın şifrelenmiş sırları veya Travis CI'nin şifrelenmiş değişkenleri ).
Gerekirse, CI sisteminizi, hata ayıklama belirtecinizin CI ortamında bir ortam değişkeni olarak kullanılabilir olmasını sağlayacak şekilde yapılandırın. Değişkeni
APP_CHECK_DEBUG_TOKEN_FROM_CI
gibi adlandırın.Modülünüzde (uygulama düzeyinde) Gradle dosyasında (genellikle
app/build.gradle
):App Check Android hata ayıklama kitaplığı için test bağımlılığını bildirin:
Kotlin+KTX
dependencies { androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.1.2' }
Java
dependencies { androidTestImplementation 'com.google.firebase:firebase-appcheck-debug-testing:16.1.2' }
CI yapı değişkeninizin yapılandırmasına aşağıdakileri ekleyin:
testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
Test sınıflarınızda, Uygulama Kontrolü belirteci gerektiren herhangi bir kodu sarmak için
DebugAppCheckTestHelper
kullanın: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. }); } }
Uygulamanız bir CI ortamında çalıştığında Firebase arka uç hizmetleri, gönderdiği belirteci geçerli olarak kabul eder.