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

Android uygulamanız Firebase ML'nin Cloud API'lerinden birini kullanıyorsa uygulamanızın üretim sürümünü devreye sokmamak için yetkisiz API erişimi.

Üretim uygulamalarınızda yalnızca kimliği doğrulanmış istemcilerin bulut hizmetlerine erişebilir. (Yalnızca rootlanmamış cihazların kullanın.)

Ardından, kolaylık sağlamak amacıyla kullanabileceğiniz bir salt hata ayıklama API anahtarı oluşturacaksınız test ve geliştirme sırasında.

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

Öncelikle üretim uygulamalarınızı Firebase'e kaydedin.

  1. Uygulamanızın SHA-1 imzalarına sahip olduğunuzdan emin olun. Referans İstemcinizin kimliğini doğrulama inceleyebilirsiniz.

  2. cihazınıza gidin Firebase konsolunda Proje ayarları'nı, ardından Ayarlar'ı seçin sekmesinden erişebilirsiniz.

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

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

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

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

  1. Google Etiket Yöneticisi'nin Credentials (Kimlik Bilgileri) sayfasını Google Cloud konsolunu kullanın. İstendiğinde projenizi seçin.

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

  3. API kısıtlamaları bölümünde Anahtarı kısıtla'yı seçin ve ardından API anahtarının erişebilmesini istediğiniz tüm API'leri listeleyin. Şunlardan emin olun: Cloud Vision API'yi dahil etmeme.

    Bir API anahtarının API kısıtlamalarını yapılandırdığınızda, anahtarın erişiminin olduğu API'leri tanımlama. Varsayılan olarak, API kısıtlamalar bölümünde Anahtarı kısıtlama seçili. Bir API anahtarı Proje için etkinleştirilmiş herhangi bir API'ye erişmek üzere kullanılır.

Mevcut API anahtarlarınız Cloud ML hizmetlerine erişim izni vermeyecek ancak bu anahtarların her biri anahtarı, API kısıtlamalarına eklediğiniz tüm API'ler için çalışmaya devam eder liste'ye dokunun.

Gelecekte başka API'leri etkinleştirirseniz bunları şuraya eklemeniz gerektiğini unutmayın: Geçerli API anahtarının API kısıtlamaları listesi.

3. Yalnızca hata ayıklama amaçlı bir API anahtarı oluşturma ve kullanma

Son olarak, yalnızca geliştirme için kullanılacak yeni bir API anahtarı oluşturun. Firebase ML, Bu API anahtarını, uygulamanın çalışıldığı ortamlarda Google Cloud hizmetlerine erişmek için kullanın Kimlik doğrulama mümkün değildir (örneğin, emülatörlerle çalışırken).

  1. Geliştirmede kullanılacak yeni bir API anahtarı oluşturun:

    1. Google Etiket Yöneticisi'nin Credentials (Kimlik Bilgileri) sayfasını Google Cloud konsolunu kullanın. İstendiğinde projenizi seçin.

    2. Kimlik bilgileri oluştur > API anahtarı ve yeni API'yi not edin tuşuna basın. Bu anahtar, kimliği doğrulanmamış uygulamalardan API erişimine izin verir. bu anahtarı gizli tutun.

  2. Yeni hata ayıklama API anahtarının yayınlanan uygulamanıza sızdırılmadığından emin olmak için: Yalnızca hata ayıklama için kullanılan bir Android manifest dosyasında hata ayıklama API'si anahtarını belirtin derleme:

    1. Hata ayıklama manifest'iniz yoksa şunu tıklayarak bir hata ayıklama manifesti oluşturun: Dosya > Yeni > Diğer > Android Manifest Dosyası'na geçip debug seçeneğini belirleyin kaynak gruplardan çıkarılabilir.

    2. Hata ayıklama manifestine aşağıdaki beyanı ekleyin:

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

    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)

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

Sonraki adımlar

Aşağıdakilerle ilgili bilgi için lansman kontrol listesini inceleyin: diğer Firebase özelliklerini kullanırken uygulamanızı lansmana hazırlama.