Если ваш Android приложение использует один из облачного API, Firebase ML, прежде, чем вы запустите приложение в производстве, вы должны принять дополнительные меры для предотвращения несанкционированного доступа к API.
Для ваших производственных приложений, вы можете быть уверены, что только аутентифицированные клиенты могут получить доступ облачных сервисов. (Обратите внимание, что только не укорененные устройства могут проходить проверку подлинности с помощью метода, описанного.)
Тогда вы будете создавать отладки только ключ API, который можно использовать для удобства во время тестирования и разработки.
1. Зарегистрировать производственные приложения с Firebase
Во-первых, зарегистрировать свои производственные приложения с Firebase.
Убедитесь, что у вас есть подпись SHA-1 своего приложения. Обратитесь к аутентификации вашего клиента , чтобы узнать , как.
Перейти к вашим
проекта в Firebase консоли, а затем выберите вкладку Параметры .Прокрутите вниз до ваших приложений карты, затем выберите приложение для Android.
Добавить ваше приложение SHA-1 подпись к информации вашего приложения.
2. Ограничить сферу ваших ключей API
Затем настройте существующие ключи API, чтобы запретить доступ к API Cloud Видения:
Откройте Credentials страницу в Google Cloud Console. В ответ на запрос, выберите проект.
Для каждого существующего ключа API в списке, открыть окно редактирования.
В разделе ограничений API , выберите ключ Ограничить , а затем добавить в список все из API , к которому вы хотите ключ API , чтобы иметь доступ. Убедитесь в том , чтобы не включать в себя API Cloud Vision.
При настройке ограничения API - ключей API , вы явно декларируя API , к которому ключ доступа. По умолчанию, когда секция ограничения API имеет не ограничивает ключ выбрано, ключ API может использоваться для доступа к любому API , который включен для проекта.
Теперь, существующие ключи API не будут предоставлять доступ к услугам облака ML, но каждая клавиша будет продолжать работать для любых интерфейсов , которые вы добавили в свой список ограничений API .
Обратите внимание , что если включить дополнительный API , в будущем, вы должны добавить их в список ограничений API для соответствующего ключа API.
3. Создание и использование отладки только ключ API
И, наконец, создать новый ключ API, который будет использоваться только для разработки. Firebase ML может использовать этот ключ API для доступа к службам Google Cloud в средах, где приложение аутентификации не представляется возможным, например, при работе на эмуляторах.
Создайте новый ключ API, который будет использоваться для разработки:
Откройте Credentials страницу в Google Cloud Console. В ответ на запрос, выберите проект.
Нажмите кнопку Создать учетные данные> ключ API и принять к сведению нового ключа API. Этот ключ позволяет получить доступ API из неаутентифицированных приложений, так держать этот ключ в тайне .
Для того, чтобы обеспечить новый ключ отладки API не просочился с выпущенным приложением, указать ключ отладки API в Android файл манифеста используется только для отладки сборки:
Если вы уже не имеете отладочный манифест, создать, нажав File> New> Other> Android Manifest файл и выбрав
debug
из множества целевых источников.В отладочном манифесте, добавьте следующее объявление:
<application> <meta-data android:name="com.firebase.ml.cloud.ApiKeyForDebug" android:value="your-debug-api-key" /> </application>
В вашем приложении, настроить Firebase ML использовать сертификат соответствия отпечатков пальцев для проверки подлинности клиента в производстве и использование ключей-АНИ отладки ключ только в отладочной версии:
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)
Следующие шаги
См запуска контрольного списка для получения информации о подготовке вашего приложения к запуску при использовании других функций Firebase.