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

App Check bir arka uç hizmeti için zorunlu kılındıktan sonra uygulamanızın bu arka uç hizmetine bağlı özellikleri, geçerli cihaz olarak kabul edilmediği için emülatörde veya sürekli entegrasyon (CI) ortamında çalışmaz. Uygulamanızı geliştirme ve test aşamalarında bu ortamlarda çalıştırmak için üretim onaylama sağlayıcısı yerine App Check hata ayıklama sağlayıcısını kullanan bir hata ayıklama derlemesi oluşturmanız gerekir.

silin.

Emülatörde hata ayıklama sağlayıcısını kullanma

Uygulamanızı bir emülatörde etkileşimli olarak çalıştırırken (örneğin, yerel geliştirme sırasında) hata ayıklama sağlayıcısını şu şekilde kullanabilirsiniz:

  1. Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) Android için App Check kitaplığına olan bağımlılığı ekleyin. Kitaplık sürümünü kontrol etmek için Firebase Android BoM kullanmanızı öneririz.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:35.0.2"))
    
        // 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 kullanarak uygulamanızın her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanmasını sağlayabilirsiniz.

    (Alternatif)  BoM kullanmadan Firebase kitaplığı bağımlılıklarını ekleme

    Firebase BoM kullanmamayı tercih ederseniz her Firebase kitaplığı sürümünü kendi bağımlılık satırında belirtmeniz gerekir.

    Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için BoM kullanmanızı önemle tavsiye ederiz. Bu sayede tüm sürümlerin uyumlu olmasını sağlayabilirsiniz.

    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:20.0.0")
    }

  2. Hata ayıklama derlemenizde App Check öğesini hata ayıklama sağlayıcı fabrikasını kullanacak şekilde yapılandırın:

    Kotlin

    Firebase.initialize(context = this)
    Firebase.appCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance(),
    )

    Java

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());
  3. Hata ayıklama jetonunuzu alın:

    1. Uygulamanızı emülatörde veya test cihazınızda çalıştırın.

    2. Günlüklerinizde App Check hata ayıklama jetonunu bulun. Örneğin:

      D DebugAppCheckProvider: Enter this debug secret into the allow list
      in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
      
    3. Jetonu (ör. 123a4567-b89c-12d3-e456-789012345678) kopyalayın.

  4. Hata ayıklama jetonunuzu App Check ile kaydedin:

    1. Firebase konsolunda Güvenlik > Uygulama Kontrolü > Uygulamalar sekmesine gidin.

    2. Uygulamanızı bulun, üç noktalı taşma menüsünü () tıklayın ve ardından Hata ayıklama jetonlarını yönet'i seçin.

    3. Hata ayıklama jetonunuzu kaydetmek için ekrandaki talimatları uygulayın.

    Firebase konsolundaki Hata Ayıklama Jetonlarını Yönet menü öğesinin ekran görüntüsü

Jetonu App Check ile kaydettikten sonra arka uç hizmetleriniz jetonu geçerli olarak kabul eder.

Bu jeton, geçerli bir cihaz olmadan arka uç hizmetlerinize erişim sağlar. Bu nedenle, jetonu gizli tutmanız çok önemlidir. Jetonu herkese açık bir depoya kaydetmeyin veya uygulamanızın üretim derlemelerinde göndermeyin. Kayıtlı bir jetonun güvenliği ihlal edilirse Firebase Console'da Hata ayıklama jetonlarını yönet'i kullanarak jetonu hemen silin.

CI ortamında birim testi için hata ayıklama sağlayıcısını kullanma

Sürekli entegrasyon (CI) ortamında birim testi için hata ayıklama sağlayıcısını şu şekilde kullanabilirsiniz:

  1. Firebase konsolunda bir hata ayıklama jetonu oluşturun:

    1. Firebase konsolunda Güvenlik > Uygulama Kontrolü > Uygulamalar sekmesine gidin.

    2. Uygulamanızı bulun, üç noktalı taşma menüsünü () tıklayın ve ardından Hata ayıklama jetonlarını yönet'i seçin.

    3. Yeni bir hata ayıklama jetonu oluşturmak için ekrandaki talimatları uygulayın.

    Bu jeton, geçerli bir cihaz olmadan arka uç hizmetlerinize erişim sağlar. Bu nedenle, jetonu gizli tutmanız çok önemlidir. Jetonu herkese açık bir depoya kaydetmeyin veya uygulamanızın üretim derlemelerinde göndermeyin. Kayıtlı bir jetonun güvenliği ihlal edilirse Firebase Console'da Hata ayıklama jetonlarını yönet'i kullanarak jetonu hemen silin.

    Hata Ayıklama Jetonlarını 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 (ör. GitHub Actions'ın şifrelenmiş gizli anahtarları veya Travis CI'ın şifrelenmiş değişkenleri).

  3. Gerekirse CI sisteminizi, hata ayıklama jetonunuzu CI ortamında ortam değişkeni olarak kullanılabilir hale getirecek şekilde yapılandırın. Değişkene APP_CHECK_DEBUG_TOKEN_FROM_CI gibi bir ad verin.

  4. Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle) Android için App Check kitaplığına olan bağımlılığı ekleyin. Kitaplık sürümünü kontrol etmek için Firebase Android BoM kullanmanızı öneririz.

    Kotlin

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:35.0.2"))
    
        // 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 kullanarak uygulamanızın her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanmasını sağlayabilirsiniz.

    (Alternatif)  BoM kullanmadan Firebase kitaplığı bağımlılıklarını ekleme

    Firebase BoM kullanmamayı tercih ederseniz her Firebase kitaplığı sürümünü kendi bağımlılık satırında belirtmeniz gerekir.

    Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için BoM kullanmanızı önemle tavsiye ederiz. Bu sayede tüm sürümlerin uyumlu olmasını sağlayabilirsiniz.

    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:20.0.0")
    }

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:35.0.2"))
    
        // 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 kullanarak uygulamanızın her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanmasını sağlayabilirsiniz.

    (Alternatif)  BoM kullanmadan Firebase kitaplığı bağımlılıklarını ekleme

    Firebase BoM kullanmamayı tercih ederseniz her Firebase kitaplığı sürümünü kendi bağımlılık satırında belirtmeniz gerekir.

    Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için BoM kullanmanızı önemle tavsiye ederiz. Bu sayede tüm sürümlerin uyumlu olmasını sağlayabilirsiniz.

    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:20.0.0")
    }

  5. CI derleme değişkeninizin yapılandırmasına aşağıdakileri ekleyin:

    testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] =
        System.getenv("APP_CHECK_DEBUG_TOKEN_FROM_CI") ?: ""
    
  6. Test sınıflarınızda, App Check jetonu gerektiren tüm kodları sarmalamak için DebugAppCheckTestHelper kullanın:

    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.
                    });
        }
    }
    

Uygulamanız bir CI ortamında çalışırken arka uç hizmetleriniz, gönderdiği jetonu geçerli olarak kabul eder.