Узнайте об использовании и управлении ключами 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 или Web) будут использовать один и тот же ключ API.

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

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

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

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

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

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

,

Ключ 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 или Web) будут использовать один и тот же ключ API.

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

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

  • Веб-приложения Firebase — найдите автоматически сопоставленный ключ 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 из списка разрешенных, но вы должны быть очень осторожны, чтобы не удалить 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 для любой службы без фарбозы

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

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

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

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

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

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

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

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

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

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

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