Firebase ML Android uygulamanızın Cloud kimlik bilgilerini koruyun
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Android uygulamanız Firebase ML'nın bulut API'lerinden birini kullanıyorsa uygulamanızı üretimde kullanıma sunmadan önce yetkisiz API erişimini engellemek için birkaç ek adım atmanız gerekir.
Üretim uygulamalarınız için yalnızca kimliği doğrulanmış istemcilerin bulut hizmetlerine erişebilmesini sağlarsınız. (Açıklanan yöntemle yalnızca root erişimli olmayan cihazların kimliğinin doğrulanabileceğini unutmayın.)
Ardından, test ve geliştirme sırasında kolaylık sağlaması için kullanabileceğiniz yalnızca hata ayıklama amaçlı bir API anahtarı oluşturacaksınız.
1. Üretim uygulamalarınızı Firebase'e kaydetme
Öncelikle üretim uygulamalarınızı Firebase'e kaydedin.
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 başlıklı makaleyi inceleyin.
settings
Firebase konsolunda Proje ayarları'na gidip Ayarlar sekmesini seçin.
Uygulamalarınız kartına gidip Android uygulamanızı seçin.
Uygulamanızın SHA-1 imzasını uygulama bilgilerinize ekleyin.
2. API anahtarlarınızın kapsamını kısıtlama
Ardından, mevcut API anahtarlarınızı Cloud Vision API'ye erişimi engelleyecek şekilde yapılandırın:
Google Cloud konsolunun Kimlik bilgileri sayfasını açın. İstendiğinde projenizi seçin.
Listedeki her mevcut API anahtarı 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, ardından API anahtarının erişmesini istediğiniz tüm API'leri listeye ekleyin. Cloud Vision API'nin dahil edilmediğinden emin olun.
Bir API anahtarının API kısıtlamalarını yapılandırdığınızda, anahtarın erişebileceği API'leri açıkça belirtirsiniz. Varsayılan olarak, API kısıtlamaları bölümünde Anahtarı kısıtlama seçiliyken bir API anahtarı, proje için etkinleştirilmiş tüm API'lere erişmek üzere kullanılabilir.
Mevcut API anahtarlarınız artık Cloud ML hizmetlerine erişim izni vermeyecek ancak her anahtar, API kısıtlamaları listesine eklediğiniz tüm API'ler için çalışmaya devam edecek.
Gelecekte ek API'ler etkinleştirirseniz bunları ilgili API anahtarının API kısıtlamaları listesine eklemeniz gerektiğini unutmayın.
3. Yalnızca hata ayıklama için kullanılacak 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, 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 Cloud konsolunun Kimlik bilgileri sayfasını açın. İstendiğinde projenizi seçin.
Kimlik bilgileri oluştur > API anahtarı'nı tıklayın ve yeni API anahtarını not edin. Bu anahtar, kimliği doğrulanmamış uygulamalardan API erişimine izin verir. Bu nedenle 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 manifestiniz yoksa File > New > Other > Android Manifest File'ı (Dosya > Yeni > Diğer > Android Manifest Dosyası) tıklayıp hedef kaynak kümelerinden debug
'ı seçerek bir tane oluşturun.
Hata ayıklama manifestine aşağıdaki bildirimi ekleyin:
<application>
<meta-data
android:name="com.firebase.ml.cloud.ApiKeyForDebug"
android:value="your-debug-api-key" />
</application>
Uygulamanızda, üretimde istemcinizin kimliğini doğrulamak için sertifika dijital parmak izi eşleştirmeyi kullanacak ve yalnızca hata ayıklama derlemelerinde API anahtarlarını (hata ayıklama anahtarı) kullanacak şekilde Firebase ML yapılandırın:
Kotlin
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.
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-08-21 UTC.
[null,null,["Son güncelleme tarihi: 2025-08-21 UTC."],[],[],null,["\u003cbr /\u003e\n\nIf your Android app uses one of Firebase ML's cloud APIs, before you launch your\napp in production, you should take some additional steps to prevent\nunauthorized API access.\n\nFor your production apps, you will ensure that only authenticated clients can\naccess cloud services. (Note that only non-rooted devices can authenticate using\nthe method described.)\n\nThen, you will create a debug-only API key that you can use for convenience\nduring testing and development.\n\n1. Register your production apps with Firebase\n\nFirst, register your production apps with Firebase.\n\n1. Make sure that you have your app's SHA-1 signatures. Refer to\n [Authenticating your client](//developers.google.com/android/guides/client-auth)\n to learn how.\n\n2. Go to your settings\n *Project settings* in the Firebase console, then select the *Settings*\n tab.\n\n3. Scroll down to the *Your apps* card, then select your Android app.\n\n4. Add your app's SHA-1 signature to your app's information.\n\n2. Restrict the scope of your API keys\n\nNext, configure your existing API keys to disallow access to the Cloud Vision\nAPI:\n\n1. Open the [Credentials](https://console.cloud.google.com/apis/credentials?project=_) page of the\n Google Cloud console. When prompted, select your project.\n\n2. For each existing API key in the list, open the editing view.\n\n3. In the *API restrictions* section, select **Restrict key** , then add to the\n list all of the APIs to which you want the API key to have access. Make sure\n to ***not*** include the Cloud Vision API.\n\n When you configure an API key's *API restrictions* , you are explicitly\n declaring the APIs to which the key has access. **By default, when the *API\n restrictions* section has *Don't restrict key* selected, an API key can be\n used to access any API that is enabled for the project.**\n\nNow, your existing API keys will not grant access to cloud ML services, but each\nkey will continue to work for any APIs that you added to its *API restrictions*\nlist.\n\nNote that if you enable any additional APIs in the future, you must add them to\nthe *API restrictions* list for the applicable API key.\n\n3. Create and use a debug-only API key\n\nFinally, create a new API key to be used only for development. Firebase ML can\nuse this API key to access Google Cloud services in environments where app\nauthentication isn't possible, such as when running on emulators.\n\n1. Create a new API key to be used for development:\n\n 1. Open the [Credentials](https://console.cloud.google.com/apis/credentials?project=_) page of the\n Google Cloud console. When prompted, select your project.\n\n 2. Click **Create credentials \\\u003e API key** and take note of the new API\n key. This key allows API access from unauthenticated apps, so\n **keep this key confidential**.\n\n2. To ensure the new debug API key is not leaked with your released app,\n specify the debug API key in an Android manifest file used only for debug\n builds:\n\n 1. If you don't already have a debug manifest, create one by clicking\n **File \\\u003e New \\\u003e Other \\\u003e Android Manifest File** and selecting `debug`\n from the target source sets.\n\n 2. In the debug manifest, add the following declaration:\n\n ```text\n \u003capplication\u003e\n \u003cmeta-data\n android:name=\"com.firebase.ml.cloud.ApiKeyForDebug\"\n android:value=\"your-debug-api-key\" /\u003e\n \u003c/application\u003e\n ```\n3. In your app, configure Firebase ML to use certificate fingerprint matching to\n authenticate your client in production and to use API keys---the debug\n key---only in debug builds:\n\n Kotlin \n\n ```kotlin\n val optionsBuilder = FirebaseVisionCloudImageLabelerOptions.Builder()\n if (!BuildConfig.DEBUG) {\n // Requires physical, non-rooted device:\n optionsBuilder.enforceCertFingerprintMatch()\n }\n\n // Set other options. For example:\n optionsBuilder.setConfidenceThreshold(0.8f)\n // ...\n\n // And lastly:\n val options = optionsBuilder.build()\n FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage)https://github.com/firebase/snippets-android/blob/391c1646eacf44d2aab3f76bcfa60dfc6c14acf1/mlkit/app/src/main/java/com/google/firebase/example/mlkit/kotlin/MainActivity.kt#L30-L42\n ```\n\n Java \n\n ```java\n FirebaseVisionCloudImageLabelerOptions.Builder optionsBuilder =\n new FirebaseVisionCloudImageLabelerOptions.Builder();\n if (!BuildConfig.DEBUG) {\n // Requires physical, non-rooted device:\n optionsBuilder.enforceCertFingerprintMatch();\n }\n\n // Set other options. For example:\n optionsBuilder.setConfidenceThreshold(0.8f);\n // ...\n\n // And lastly:\n FirebaseVisionCloudImageLabelerOptions options = optionsBuilder.build();\n FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage);https://github.com/firebase/snippets-android/blob/391c1646eacf44d2aab3f76bcfa60dfc6c14acf1/mlkit/app/src/main/java/com/google/firebase/example/mlkit/MainActivity.java#L30-L43\n ```\n\nNext steps\n\nSee the [launch checklist](/support/guides/launch-checklist) for information on\npreparing your app to launch when using other Firebase features."]]