Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Firebase ML Android uygulamanızın Bulut kimlik bilgilerini koruyun

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

Android uygulamanız Firebase ML'nin bulut API'lerinden birini kullanıyorsa uygulamanızı üretimde başlatmadan önce yetkisiz API erişimini önlemek için bazı ek adımlar atmalısınız.

Üretim uygulamalarınız için yalnızca kimliği doğrulanmış istemcilerin bulut hizmetlerine erişebilmesini sağlayacaksınız. (Yalnızca köklü olmayan cihazların açıklanan yöntemi kullanarak kimlik doğrulaması yapabileceğini unutmayın.)

Ardından, test ve geliştirme sırasında kolaylık sağlamak için kullanabileceğiniz yalnızca hata ayıklama API anahtarı oluşturacaksınız.

1. Üretim uygulamalarınızı Firebase'e kaydedin

İlk olarak, üretim uygulamalarınızı Firebase'e kaydedin.

  1. Uygulamanızın SHA-1 imzalarına sahip olduğunuzdan emin olun. Nasıl yapılacağını öğrenmek için İstemcinizin kimliğini doğrulama bölümüne bakın.

  2. Firebase konsolunda Proje ayarlarına gidin, ardından Ayarlar sekmesini seçin.

  3. Uygulamalarınız kartına ilerleyin, ardından Android uygulamanızı seçin.

  4. Uygulamanızın bilgilerine uygulamanızın SHA-1 imzasını ekleyin.

2. API anahtarlarınızın kapsamını kısıtlayın

Ardından, Cloud Vision API'ye erişime izin vermemek için mevcut API anahtarlarınızı yapılandırın:

  1. Google Cloud Console'un Kimlik Bilgileri sayfasını açın. İstendiğinde, projenizi seçin.

  2. Listedeki mevcut her API anahtarı için düzenleme görünümünü açın.

  3. API kısıtlamaları bölümünde Anahtarı kısıtla öğesini seçin, ardından API anahtarının erişmesini istediğiniz tüm API'leri listeye ekleyin. Cloud Vision API'yi eklemediğinizden emin olun.

    Bir API anahtarının API kısıtlamalarını yapılandırdığınızda, anahtarın erişime sahip olduğu API'leri açıkça beyan etmiş olursunuz. Varsayılan olarak, API kısıtlamaları bölümünde Anahtarı kısıtlama seçili olduğunda, proje için etkinleştirilen herhangi bir API'ye erişmek için bir API anahtarı kullanılabilir.

Artık mevcut API anahtarlarınız bulut ML hizmetlerine erişim izni vermeyecek, ancak her anahtar, API kısıtlama listesine eklediğiniz tüm API'ler için çalışmaya devam edecek.

Gelecekte ek API'leri etkinleştirirseniz, bunları geçerli API anahtarı için API kısıtlamaları listesine eklemeniz gerektiğini unutmayın.

3. Yalnızca hata ayıklama API anahtarı oluşturun ve kullanın

Son olarak, yalnızca geliştirme için kullanılacak yeni bir API anahtarı oluşturun. Firebase ML, öykünücüler üzerinde çalışırken olduğu gibi uygulama kimlik doğrulamasının mümkün olmadığı ortamlarda Google Cloud hizmetlerine erişmek için bu API anahtarını kullanabilir.

  1. Geliştirme için kullanılacak yeni bir API anahtarı oluşturun:

    1. Google Cloud Console'un Kimlik Bilgileri sayfasını açın. İstendiğinde, projenizi seçin.

    2. Kimlik bilgileri oluştur > API anahtarı'na tıklayın ve yeni API anahtarını not alın. Bu anahtar, kimliği doğrulanmamış uygulamalardan API erişimine izin verir, bu nedenle bu anahtarı gizli tutun .

  2. Yayınlanan uygulamanızda yeni hata ayıklama API anahtarının sızdırılmadığından emin olmak için, yalnızca hata ayıklama derlemeleri için kullanılan bir Android bildirim dosyasında hata ayıklama API anahtarını belirtin:

    1. Halihazırda bir hata ayıklama bildiriminiz yoksa, Dosya > Yeni > Diğer > Android Manifest Dosyası'na tıklayarak ve hedef kaynak kümelerinden debug seçerek bir tane oluşturun.

    2. Hata ayıklama bildiriminde aşağıdaki bildirimi ekleyin:

      <application>
      <meta-data
          android:name="com.firebase.ml.cloud.ApiKeyForDebug"
          android:value="your-debug-api-key" />
      </application>
      
  3. Uygulamanızda, üretimde istemcinizin kimliğini doğrulamak için sertifika parmak izi eşleştirmesini kullanacak ve yalnızca hata ayıklama yapılarında hata ayıklama anahtarı olan API anahtarlarını kullanacak şekilde Firebase ML'yi yapılandırın:

    Java

    FirebaseVisionCloudImageLabelerOptions.Builder optionsBuilder =
            new FirebaseVisionCloudImageLabelerOptions.Builder();
    if (!BuildConfig.DEBUG) {
        // Requires physical, non-rooted device:
        optionsBuilder.enforceCertFingerprintMatch();
    }
    
    // Set other options. For example:
    optionsBuilder.setConfidenceThreshold(0.8f);
    // ...
    
    // And lastly:
    FirebaseVisionCloudImageLabelerOptions options = optionsBuilder.build();
    FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage);

    Kotlin+KTX

    val optionsBuilder = FirebaseVisionCloudImageLabelerOptions.Builder()
    if (!BuildConfig.DEBUG) {
        // Requires physical, non-rooted device:
        optionsBuilder.enforceCertFingerprintMatch()
    }
    
    // Set other options. For example:
    optionsBuilder.setConfidenceThreshold(0.8f)
    // ...
    
    // And lastly:
    val options = optionsBuilder.build()
    FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage)

Sonraki adımlar

Diğer Firebase özelliklerini kullanırken uygulamanızı başlatmaya hazırlama hakkında bilgi için başlatma kontrol listesine bakın.