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. Bunu nasıl yapacağınızı öğrenmek için İstemcinizin kimliğini doğrulama başlıklı makaleyi inceleyin.
Firebase konsolunda Proje ayarları'nı, ardından Ayarlar'ı seçin sekmesinden erişebilirsiniz.
cihazınıza gidinUygulamalarınız kartına ilerleyin, ardından 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, Cloud Vision'a erişime izin vermemek için mevcut API anahtarlarınızı yapılandırın API:
Google Etiket Yöneticisi'nin Credentials (Kimlik Bilgileri) sayfasını Google Cloud konsolu. İ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. Ş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 şunları yapabilir: Bu API anahtarını, uygulamanın gerektiği 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).
Geliştirmede kullanılacak yeni bir API anahtarı oluşturun:
Google Etiket Yöneticisi'nin Credentials (Kimlik Bilgileri) 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. bunu gizli tutun.
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:
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.Hata ayıklama manifest dosyasına aşağıdaki beyanı ekleyin:
<application> <meta-data android:name="com.firebase.ml.cloud.ApiKeyForDebug" android:value="your-debug-api-key" /> </application>
Uygulamanızda, Firebase ML'ü, istemcinizin üretimde kimliğini doğrulamak için sertifika parmak izi eşleştirmeyi ve API anahtarlarını (hata ayıklama anahtarı) yalnızca hata ayıklama derlemelerinde kullanmayı sağlayacak şekilde yapılandırın:
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.