Узнайте об использовании и управлении ключами 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
  • Создание Android-приложения Firebase > Автоматическое создание Android key

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

Как найти свои API-ключи

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

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

Для подавляющего большинства разработчиков и сценариев использования взаимодействие с этими API-ключами напрямую не требуется. Вместо этого, когда ваше приложение обращается к API Firebase, для которого требуется API-ключ, предоставленный мобильным или веб-клиентом, ваше приложение автоматически ищет API-ключ в конфигурации Firebase . Эта конфигурация была добавлена ​​в код вашего приложения при подключении приложения к Firebase.

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

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

https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=API_KEY

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

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

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

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

Поскольку Firebase добавляет необходимые API для всех сервисов Firebase, список разрешенных API для ключа 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 .

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

Хотя ключи 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 .

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

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

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