Android uygulamanız, Firebase ML uygulamasının bulut API'lerinden birini kullanıyorsa uygulamanızı kullanıma sunmadan önce 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şebildiğinden emin olursunuz. (Yalnızca rootlanmamış cihazların kullanın.)
Ardından, test ve geliştirme sırasında kolaylık sağlamak için kullanabileceğiniz yalnızca hata ayıklama amaçlı bir API anahtarı oluşturursunuz.
1. Üretim uygulamalarınızı Firebase'e kaydedin
Öncelikle, üretim uygulamalarınızı Firebase'e kaydedin.
Uygulamanızın SHA-1 imzalarına sahip olduğunuzdan emin olun. Referans İstemcinizin kimliğini doğrulama inceleyebilirsiniz.
Firebase Konsolu'nda Proje ayarlarınıza gidin ve Ayarlar sekmesini seçin.
Uygulamalarınız kartına gidip Android uygulamanızı seçin.
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, mevcut API anahtarlarınızı Cloud Vision API'ye erişime izin vermeyecek şekilde yapılandırın:
Google Cloud konsolunun Kimlik bilgileri sayfasını açın. İstendiğinde projenizi seçin.
Listedeki her mevcut API için düzenleme görünümünü açın.
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. Cloud Vision API'yi dahil etmediğinizden emin olun.
Bir API anahtarının API kısıtlamalarını yapılandırdığınızda, anahtarın erişebildiği API'leri açıkça belirtirsiniz. 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 için API anahtarı oluşturma ve kullanma
Son olarak, yalnızca geliştirme için kullanılacak yeni bir API anahtarı oluşturun. Firebase ML, uygulama kimlik doğrulamasının mümkün olmadığı ortamlarda (ör. emülatörlerde çalışırken) Google Cloud hizmetlerine erişmek için bu API anahtarını kullanabilir.
Geliştirme için kullanılacak yeni bir API anahtarı oluşturun:
Google Etiket Yöneticisi'nin Credentials (Kimlik Bilgisi) sayfasını Google Cloud konsolu. İstendiğinde projenizi seçin.
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.
Yeni hata ayıklama API anahtarının, yayınlanan uygulamanızla birlikte sızdırılmaması için hata ayıklama API anahtarını yalnızca hata ayıklama derlemeleri için kullanılan bir Android manifest dosyasında belirtin:
Hata ayıklama manifest dosyanız yoksa Dosya > Yeni > Diğer > Android Manifest Dosyası'nı tıklayıp hedef kaynak kümelerinden
debug
'yi seçerek bir dosya oluşturun.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>
Uygulamanızda, şunlar için sertifika parmak izi eşleştirmesini kullanacak şekilde Firebase ML uygulamasını 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
Diğer Firebase özelliklerini kullanırken uygulamanızı kullanıma sunmaya hazırlama hakkında bilgi edinmek için kullanıma sunma yapılacaklar listesine bakın.