Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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şmesini 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. Bakınız müşterini kimlik denetimi öğrenmek için.

  2. Senin git daha sonra Ayarlar sekmesini seçin Firebase konsolundaki Proje ayarlarında.

  3. Ardından Android uygulamasını seçin Uygulamalarınız kartına aşağı kaydırın.

  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. Kimlik Google Bulut Konsolu sayfası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, daha sonra, anahtarı sınırla seçeneğini tüm API anahtarı erişimi olmasını istediğiniz hangi API'ler listesine ekleyin. Emin olun Bulut Vision API içermeyecek şekilde.

    Eğer bir API anahtarın API kısıtlamalar yapılandırırken, açıkça anahtar erişimi olan API'leri ilan edilir. API kısıtlamalar bölüm Do anahtarı seçilen, bir API anahtarı projesi için etkindir herhangi bir API erişmek için kullanılabilir kısıtlamak değil, varsayılan olarak.

Şimdi, mevcut API anahtarları bulut ML hizmetlerine erişim izni olmaz, ama her anahtar onun API kısıtlamalar listesine eklenmiş herhangi API'ler için çalışmalarına devam edecektir.

İleride herhangi bir ek API'ler etkinleştirirseniz, geçerli API anahtarı için API kısıtlamalar listenize ekleyebilirsiniz 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. Kimlik Google Bulut Konsolu sayfasını. İstendiğinde, projenizi seçin.

    2. Kimlik> API anahtarı oluşturun tıklayın ve yeni API anahtarı not edin. Bu anahtar öylesine gizli bu anahtarı tutmak, kimliği doğrulanmamış uygulamalardan API erişimine izin vermektedir.

  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. Zaten bir ayıklama bildirim yoksa, Dosya> Yeni> Diğer> Android Manifest Dosyası tıklayıp seçerek bir tane oluşturun debug hedef kaynak kümelerinden.

    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 API anahtarlarını (hata ayıklama anahtarı) 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

Bkz fırlatma kontrol listesi diğer Firebase özelliklerini kullanırken başlatmak için uygulamanızı hazırlama hakkında bilgi için.