Узнайте об использовании и управлении ключами API для Firebase.

Ключ API — это уникальная строка, используемая для маршрутизации запросов к вашему проекту Firebase при взаимодействии с Firebase и сервисами Google. На этой странице представлена ​​базовая информация о ключах API, а также рекомендации по использованию и управлению ключами API в приложениях Firebase.

Общая информация о ключах API и Firebase

Ключи API для Firebase отличаются от обычных ключей API

В отличие от того, как обычно используются ключи API, ключи API для служб Firebase не используются для управления доступом к внутренним ресурсам ; это можно сделать только с помощью Firebase Security Rules (для управления тем, какие конечные пользователи могут получать доступ к ресурсам) и Firebase App Check (для управления тем, какие приложения могут получать доступ к ресурсам).

Обычно необходимо тщательно защищать ключи API (например, используя службу хранилища или устанавливая ключи в качестве переменных среды); однако ключи API для служб Firebase можно включать в код или регистрировать в файлах конфигурации.

Хотя ключи API для служб Firebase можно безопасно включать в код, вам следует просмотреть и применить к ним соответствующие ограничения и лимиты .

Создание API-ключей

Проект Firebase может иметь много ключей API, но каждый ключ API может быть связан только с одним проектом Firebase.

Ключи API, автоматически создаваемые Firebase для ваших приложений Firebase

Firebase автоматически создает ключи API для вашего проекта, когда вы выполняете любое из следующих действий:

  • Создать проект Firebase > Browser key создан автоматически
  • Создайте приложение Firebase Apple > iOS key создан автоматически
  • Создайте приложение Firebase для Android > Android key создан автоматически

Вы также можете создавать собственные ключи API в консоли Google Cloud , например, для разработки или отладки . Подробнее о том, когда это может быть рекомендовано, читайте далее на этой странице.

Поиск ключей API

Вы можете просматривать и управлять всеми ключами API вашего проекта на панели API и службы > Учетные данные в консоли Google Cloud .

Вы также можете узнать, какой ключ API автоматически сопоставляется с приложением Firebase, в следующих местах. По умолчанию все приложения Firebase вашего проекта для одной платформы (Apple, Android или веб-приложения) будут использовать один и тот же ключ API.

  • Firebase Apple Apps — найдите автоматически сопоставленный ключ API в файле конфигурации Firebase, GoogleService-Info.plist , в поле API_KEY .

  • Приложения Firebase для Android — найдите автоматически сопоставленный ключ API в файле конфигурации Firebase, google-services.json , в поле current_key .

  • Firebase Web Apps — найдите автоматически сопоставленный ключ API в объекте конфигурации Firebase в поле apiKey .

Использование API-ключа

Ключи API используются для идентификации вашего проекта Firebase при взаимодействии с сервисами Firebase/Google. В частности, они используются для связывания запросов API с вашим проектом для управления квотами и выставления счетов. Они также полезны для доступа к публичным данным.

Например, вы можете явно использовать ключ API, передав его значение в вызов REST API в качестве параметра запроса. В этом примере показано, как можно выполнить запрос к API сокращателя ссылок Dynamic Links :

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

Когда ваше приложение обращается к API Firebase, требующему API-ключа, предоставленного мобильным/веб-клиентом, оно автоматически ищет API-ключ вашего проекта в файле/объекте конфигурации Firebase. Однако вы можете предоставить API-ключи для своего приложения, используя другой механизм, включая переменные среды.

Проверьте и примените соответствующие ограничения к ключам API (рекомендуется)

Хотя нет необходимости рассматривать ключ API для служб Firebase как секрет, вам следует ознакомиться и применить ограничения и лимиты, описанные в этом разделе.

Проверьте API, автоматически добавленные в список разрешенных для ваших ключей API Firebase.

Когда Firebase создаёт ключ API в вашем проекте, мы автоматически добавляем к нему «Ограничения API» . API, добавленные в этот разрешённый список, — это API, связанные с Firebase, которые требуют от клиента предоставления ключа API вместе с вызовом. Обратите внимание, что большинство API, необходимых для использования сервисов Firebase, на самом деле не обязательно должны быть в разрешённом списке для ваших ключей API.

Поскольку Firebase добавляет необходимые API для всех сервисов Firebase, разрешённый список для ключа API может включать API для продуктов, которые вы не используете. Вы можете удалить API из разрешённого списка, но будьте очень осторожны, чтобы не удалить API, необходимые для Firebase и используемых вами сервисов Firebase (см. список API, связанных с Firebase , которые должны быть включены в разрешённый список для каждого сервиса/продукта). В противном случае при вызовах сервисов Firebase будут возникать ошибки.

Увеличьте квоту, если вы используете Authentication на основе пароля.

Если вы используете Firebase Authentication по паролю, и кто-то получит ваш ключ API, он не сможет получить доступ к базе данных вашего проекта Firebase или данным Cloud Storage пока эти данные защищены Firebase Security Rules . Однако злоумышленники могут использовать ваш ключ API для доступа к конечным точкам аутентификации Firebase и выполнять запросы аутентификации в отношении вашего проекта.

Чтобы снизить вероятность несанкционированного использования ключа API для атаки методом подбора пароля, можно ужесточить квоту по умолчанию для конечных точек identitytoolkit.googleapis.com , чтобы она соответствовала обычному трафику вашего приложения. Имейте в виду, что если вы ужесточите квоту и в вашем приложении внезапно появится больше пользователей, вы можете столкнуться с ошибками входа, пока не увеличите квоту. Вы можете изменить квоты API вашего проекта в консоли Google Cloud .

Используйте отдельные, ограниченные ключи API для любых служб, не относящихся к Firebase.

Хотя API-ключи, используемые для служб Firebase, обычно не требуют особого внимания, следует принять дополнительные меры предосторожности в отношении API-ключей, используемых с другими API Google Cloud .

Если вы используете API Google Cloud (на любой платформе), не предназначенный для сервиса/продукта Firebase, мы настоятельно рекомендуем создать отдельные API-ключи с ограниченным доступом для использования с этими API. Это особенно важно, если API предназначен для платного сервиса Google Cloud .

Например, если вы используете Firebase ML и API Cloud Vision на iOS, вам следует создать отдельные ключи API , которые будут использоваться только для доступа к API Cloud Vision.

Используя отдельные ограниченные ключи API для API, отличных от Firebase, вы можете при необходимости ротировать или заменять ключи, а также добавлять дополнительные ограничения к ключам API, не прерывая использование служб Firebase.

Используйте API-ключи, специфичные для среды (рекомендуется)

Если вы настраиваете разные проекты Firebase для разных сред, например, для промежуточной и рабочей среды, важно, чтобы каждый экземпляр приложения взаимодействовал с соответствующим ему проектом Firebase. Например, экземпляр промежуточного приложения никогда не должен взаимодействовать с вашим производственным проектом Firebase. Это также означает, что промежуточное приложение должно использовать ключи API, связанные с промежуточным проектом Firebase.

Чтобы уменьшить проблемы, связанные с переносом изменений кода с этапа разработки на этап подготовки к производству, вместо включения ключей API в сам код либо задайте их как переменные среды, либо включите их в файл конфигурации.

Обратите внимание: если вы используете Firebase Local Emulator Suite для разработки вместе с Firebase ML , вам необходимо создать и использовать API-ключ, предназначенный только для отладки. Инструкции по созданию такого ключа можно найти в документации Firebase ML .

Часто задаваемые вопросы и устранение неполадок

Часто задаваемые вопросы

Поиск неисправностей