Узнайте об использовании и управлении ключами 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 можно включать в код или зарегистрированные файлы конфигурации.
Проект Firebase может иметь множество ключей API, но каждый ключ API может быть связан только с одним проектом 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 — найдите автоматически сопоставленный ключ 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, предоставленный мобильным или веб-клиентом, ваше приложение автоматически ищет в файле/объекте конфигурации Firebase ключ API вашего проекта. Однако вы можете предоставить ключи 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 .
Если вы используете 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
В этих инструкциях описывается, как создать отдельный ограниченный ключ API для поддельного API под названием Super Service API .
Шаг 1. Настройте существующие ключи API, чтобы запретить доступ к Super Service API
Откройте страницу учетных данных консоли Google Cloud . При появлении запроса выберите свой проект.
Для каждого существующего ключа API в списке откройте режим редактирования.
В разделе «Ограничения API» выберите «Ограничить ключ» , затем добавьте в список все API, к которым вы хотите, чтобы ключ API имел доступ. Обязательно не указывайте API, для которого вы создаете отдельный ключ API (в этом примере Super Service API ).
Когда вы настраиваете ограничения API ключа API , вы явно объявляете API, к которым ключ имеет доступ. По умолчанию, если в разделе ограничений API выбран параметр «Не ограничивать ключ» , ключ API можно использовать для доступа к любому API, включенному для проекта.
Теперь ваши существующие ключи API не будут предоставлять доступ к Super Service API , но каждый ключ будет продолжать работать для любых API, которые вы добавили в список ограничений API .
Шаг 2. Создайте и используйте новый ключ API для доступа к Super Service API
Вернитесь на страницу учетных данных . Убедитесь, что ваш проект Firebase все еще выбран.
Нажмите Создать учетные данные > Ключ API . Запишите новый ключ API и нажмите «Ограничить ключ» .
В разделе «Ограничения API» выберите «Ограничить ключ» , затем добавьте в список толькоSuper Service API .
Этот новый ключ API предоставляет доступ только к Super Service API .
Настройте свое приложение и службы для использования нового ключа API.
Используйте ключи API для конкретной среды (рекомендуется)
Если вы настраиваете разные проекты Firebase для разных сред, например для промежуточной и рабочей среды, важно, чтобы каждый экземпляр приложения взаимодействовал со своим соответствующим проектом Firebase. Например, ваш экземпляр промежуточного приложения никогда не должен взаимодействовать с вашим производственным проектом Firebase. Это также означает, что ваше промежуточное приложение должно использовать ключи API, связанные с вашим промежуточным проектом Firebase.
Чтобы уменьшить проблемы с продвижением изменений кода от разработки к промежуточной стадии и к производству, вместо включения ключей API в сам код либо установите их как переменные среды, либо включите в файл конфигурации.
Обратите внимание: если вы используете Firebase Local Emulator Suite для разработки вместе с Firebase ML , вам необходимо создать и использовать ключ API только для отладки. Инструкции по созданию такого ключа можно найти в документации Firebase ML .
Часто задаваемые вопросы и устранение неполадок
Часто задаваемые вопросы
Ограничены ли по умолчанию ключи API для сервисов Firebase?
Да, по умолчанию ко всем ключам API, которые Firebase автоматически предоставляет для использования с API-интерфейсами, связанными с Firebase, автоматически применяются «Ограничения API» . Ознакомьтесь со списком API-интерфейсов Firebase , которые включены в этот белый список.
В этот список разрешенных добавлены API-интерфейсы, которые вызываются службами Firebase из клиентского кода и требуют ключей API для идентификации вашего проекта или приложения Firebase. Обратите внимание, что большинство API, необходимых для использования сервисов Firebase, на самом деле не обязательно должны быть в белом списке для ваших ключей API.
Поскольку Firebase добавляет необходимые API для всех сервисов Firebase, белый список для ключа API может включать API для продуктов, которые вы не используете. Вы можете удалить API из белого списка, но будьте очень осторожны, чтобы не удалить API, необходимые для Firebase и сервисов Firebase, которые вы используете (см. список API-интерфейсов, связанных с Firebase , которые должны быть в белом списке для каждой услуги/продукта). В противном случае вы получите ошибки при вызове сервисов Firebase.
Вы можете просмотреть все свои ключи API и их «ограничения API» на панели «API и службы» > «Учетные данные» в консоли Google Cloud .
Обратите внимание на следующее о том, как Firebase применяет эти «ограничения API»:
Начиная с мая 2024 года все новые ключи API, автоматически предоставляемые Firebase, автоматически ограничиваются списком API, связанных с Firebase .
В мае 2024 года все существующие и неограниченные ключи API, которые Firebase ранее автоматически предоставила, будут ограничены списком API-интерфейсов, связанных с Firebase,а также любым из API-интерфейсов, включенных в настоящее время в проекте.
Любые существующие и уже ограниченные ключи API, которые Firebase ранее предоставила автоматически, не были изменены.
Любые существующие ключи API, которые не были предоставлены Firebase автоматически, не были изменены.
Как определить, какой ключ API связан с моим приложением Firebase?
Вы можете использовать любой из следующих вариантов, чтобы определить, какой ключ API связан с вашим приложением Firebase:
Консоль Firebase
Перейдите в settingsНастройки проекта и прокрутите вниз до карточки «Ваши приложения» .
Выберите интересующее приложение.
Получите файл/объект конфигурации Firebase для интересующего приложения, а затем найдите его ключ API:
Apple : загрузите GoogleService-Info.plist и найдите поле API_KEY
Android : загрузите google-services.json , найдите конфигурацию интересующего приложения (найдите имя его пакета), а затем найдите поле current_key
Интернет : выберите параметр «Конфигурация» , а затем найдите поле apiKey
Интерфейс командной строки Firebase
Получите файл/объект конфигурации Firebase для интересующего приложения, выполнив следующую команду:
Эта keyString — это то же значение, которое можно найти в артефакте конфигурации приложения ( Apple | Android | Web ).
Могу ли я указать два ключа API для одного и того же приложения Firebase в моем файле/объекте конфигурации Firebase?
Приложения Firebase Apple — каждое приложение имеет свой собственный файл конфигурации и может иметь только один ключ API.
Приложения Firebase для Android . Все приложения Android в проекте Firebase перечислены в одном файле конфигурации, и для каждого приложения может быть указан только один ключ API. Однако для каждого приложения в этом файле конфигурации может быть указан другой ключ.
Веб-приложения Firebase — каждое приложение имеет свой собственный объект конфигурации и может иметь только один ключ API.
Однако вы можете использовать несколько ключей API с одним приложением. Вы должны предоставить вашему приложению механизм доступа к этим другим ключам API, например, через переменную среды. Механизм доступа к другим ключам API просто не может зависеть от того, указаны ли эти ключи API в вашем файле/объекте конфигурации Firebase.
Как Firebase узнает, какой ключ API сопоставить приложению (например, в файле/объекте конфигурации Firebase)?
Если Firebase не найдет подходящих ограниченных ключей, то он укажет в файле конфигурации/объекте iOS key для приложений Apple, Android key для приложений Android и Browser key для веб-приложений (при условии, что эти ключи существуют и не имеют «ограничений приложения», которые не позволяют им соответствовать этому приложению).
Могу ли я вручную удалить ключ и поле API из файла/объекта конфигурации Firebase?
Да, вы можете вручную удалить ключ API из файла/объекта конфигурации. Однако вы должны предоставить вашему приложению другой механизм доступа к ключу API (например, через переменную среды). В противном случае любые вызовы сервисов Firebase не будут выполнены.
Могу ли я вручную редактировать файл/объект конфигурации Firebase с помощью разных ключей API?
Да, вы можете вручную отредактировать файл/объект конфигурации, чтобы связать с приложением другой ключ API.
Могу ли я переместить ключ API из одного проекта Firebase в другой?
Нет, ключ API идентифицирует только конкретный проект и не может быть перенесен в другой проект.
Что произойдет, если я удалю ключ API, указанный в консоли Google Cloud ?
Если вы удалите ключ API, который используется приложением, вызовы API из этого приложения не будут выполнены. Вы можете получить отчеты, электронные письма или ошибки о том, что вы пытаетесь использовать недействительный ключ API.
Удаление ключа API является окончательным и не может быть отменено.
Какие API требуются в белом списке «Ограничения API» для ключа API Firebase?
Для ключа API Firebase единственные API, которые должны быть в списке разрешений «Ограничения API» ключа, — это API, которые требуют, чтобы клиент предоставил ключ API вместе с вызовом. Обратите внимание, что очень немногие API-интерфейсы, связанные с Firebase, имеют это требование. Большинство API-интерфейсов, связанных с Firebase, включенных в вашем проекте, не обязательно должны находиться в белом списке «Ограничения API» ключа.
Используйте следующую таблицу, чтобы определить, какие API-интерфейсы, связанные с Firebase, необходимо включить в список разрешений «Ограничения API» для ключа API Firebase. Помните, что ключи API Firebase следует использовать только для сервисов Firebase. Узнайте больше о создании отдельных ключей API с ограниченным доступом для определенных типов API .
Вы можете просматривать ключи API вашего проекта и управлять ими на панели API и сервисы > Учетные данные в консоли Google Cloud .
API для обмена сообщениями внутри приложений Firebase
In-App Messaging
firebaseml.googleapis.com
API Firebase ML
Firebase ML
mlkit.googleapis.com **
API комплекта машинного обучения
Firebase ML
mobilecrashreporting.googleapis.com
API отчетов о мобильных сбоях
Performance Monitoring
play.googleapis.com
API разработчика Google Play для Android
Performance Monitoring
firebaseremoteconfig.googleapis.com
API удаленной конфигурации Firebase
Performance Monitoring , Remote Config
firebaseremoteconfigrealtime.googleapis.com
API удаленной настройки Firebase в реальном времени
Performance Monitoring , Remote Config
cloudconfig.googleapis.com **
Н/Д
Remote Config
firebasedatabase.googleapis.com *
API базы данных Firebase в реальном времени
Realtime Database
firebasevertexai.googleapis.com
Vertex AI в Firebase API
Вершинный ИИ в Firebase
* Требуется только в том случае, если вы используете ключ API Firebase со сторонними инструментами или прямым доступом REST к сервису/продукту Firebase.
** Требуется для более ранних версий SDK продукта. Если вы используете последнюю версию SDK, API не обязательно должен быть в белом списке ключа.
Поиск неисправностей
Как исправить ошибку API_KEY_SERVICE_BLOCKED или Forbidden 403, в которой говорится, что запросы к этому API заблокированы?
Следуйте инструкциям в этом разделе часто задаваемых вопросов, если вы получаете ошибку API_KEY_SERVICE_BLOCKED или ошибку, которая выглядит следующим образом:
Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.
К ключу API, используемому вашим приложением для вызова API, вероятно, применены «Ограничения API» , а список разрешений ключа не включает этот API.
Если вы получаете эту ошибку при попытке использовать службу, отличную от Firebase , мы настоятельно рекомендуем создать новый ключ API специально для этой службы и API. Ключи API Firebase следует использовать только для сервисов/продуктов Firebase. Узнайте больше о создании отдельных ключей API с ограниченным доступом для определенных типов API .
Как исправить эту ошибку? «Не удалось получить идентификатор измерения этого приложения Firebase с сервера».
К ключу API, используемому вашим веб-приложением, вероятно, применены «Ограничения API» . В этом случае убедитесь, что API управления Firebase находится в списке разрешенных API.
Я получил электронное письмо или ошибку о том, что мой ключ API недействителен. Что случилось и как это исправить?
Вот несколько наиболее распространенных причин недействительных ключей API:
К ключу API применены «Ограничения ключа API» , которые делают его несопоставимым с приложением, пытающимся использовать ключ («Ограничения приложения»), или непригодным для использования для вызываемого API («Ограничения API»).
Ключ API был удален из проекта в консоли Google Cloud .
Ключ API не был создан для идентификатора проекта, указанного в файле/объекте конфигурации Firebase приложения.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-04-15 UTC."],[],[]]