Firebase is back at Google I/O on May 10! Register now

Android'de hata ayıklama sağlayıcısıyla Uygulama Kontrolü'nü kullanın

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

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:

  1. 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'
    }
    
  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());
  3. 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
  4. 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.

    Hata Ayıklama Belirteçlerini Yönet menü öğesinin ekran görüntüsü

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:

  1. 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.

    Hata Ayıklama Belirteçlerini Yönet menü öğesinin ekran görüntüsü

  2. 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 ).

  3. 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.

  4. Modülünüzde (uygulama düzeyinde) Gradle dosyasında (genellikle app/build.gradle ):

    1. 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'
      }
      
    2. CI yapı değişkeninizin yapılandırmasına aşağıdakileri ekleyin:

      testInstrumentationRunnerArgument "firebaseAppCheckDebugSecret", System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ''
      
  5. 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.