Узнайте об использовании и управлении ключами 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 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
В этих инструкциях описывается, как создать отдельный ограниченный ключ API для поддельного API, называемого Super Service API .
Шаг 1: Настройте существующие ключи API, чтобы запретить доступ к Super Service API
Откройте страницу Credentials консоли 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
Вернитесь на страницу Credentials . Убедитесь, что ваш проект Firebase все еще выбран.
Нажмите Создать учетные данные > API key . Запишите новый API key, затем нажмите Ограничить key .
В разделе ограничений 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, добавленные в этот список разрешенных, — это API, вызываемые службами Firebase из клиентского кода и требующие ключей API для идентификации вашего проекта или приложения Firebase. Обратите внимание, что большинство API, необходимых для использования служб Firebase, на самом деле не должны быть в списке разрешенных для ваших ключей API.
Поскольку Firebase добавляет необходимые API для всех служб Firebase, список разрешенных API для ключа 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 приложения найдите его ключ API:
Apple : Найдите поле API_KEY
Android : найдите конфигурацию интересующего вас приложения (найдите имя пакета), а затем найдите поле current_key
Веб : Найдите поле apiKey
REST-API
Получите apiKeyId (UID) ключа API, вызвав соответствующую конечную точку для интересующего приложения, а затем передав значение apiKeyId на следующий шаг.
Этот 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" для ключа Firebase API. Помните, ключи Firebase API следует использовать только для служб Firebase. Узнайте больше о создании отдельных ограниченных ключей API для определенных типов API .
Вы можете просматривать и управлять ключами API вашего проекта на панели API и службы > Учетные данные в консоли Google Cloud .
* Требуется только в том случае, если вы используете ключ 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" . Если это так, убедитесь, что Firebase Management API находится в списке разрешенных API.
Я получил письмо или ошибку о том, что мой ключ API недействителен. Что случилось и как это исправить?
Вот несколько наиболее распространенных причин недействительных ключей API:
К ключу API применены «Ограничения ключа API» , которые делают его несовместимым с приложением, пытающимся использовать ключ («Ограничения приложения»), или непригодным для вызываемого API («Ограничения API»).
Ключ API был удален из проекта в консоли Google Cloud .
Ключ 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 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-специфических ключей
Эти инструкции описывают, как создать отдельный, ограниченный ключ 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, который включен для проекта.
Теперь ваши существующие ключи 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. Например, ваш экземпляр Pating App никогда не должен разговаривать с вашим проектом Firebase Firebase. Это также означает, что ваше приложение для постановки необходимо использовать клавиши API, связанные с вашим проектом Firebase.
Чтобы уменьшить проблемы, пропагандирующие изменения кода от разработки до постановки до производства, вместо того, чтобы включать ключи API в сам код, либо установите их в качестве переменных среды, либо включите их в файл конфигурации.
Обратите внимание, что если вы используете Firebase Local Emulator Suite для разработки вместе с Firebase ML , вы должны создать и использовать ключ API только отладки. Инструкции по созданию такого рода ключа встречаются в документах Firebase ML .
Часто задаваемые вопросы и устранение неполадок
Часто задаваемые вопросы
Являются ли клавиши API для служб Firebase, ограниченными по умолчанию?
Да, по умолчанию все клавиши API, которые автопроводы Firebase для использования с API, связанными с Firebase, имеют автоматически «ограничения API» . См. Список API, связанных с огненной базой , которые находятся в этом списке.
API, добавленные к этому разрешению, представляют собой те API, вызванные службами Firebase от клиентского кода, и требуют клавиш API для идентификации вашего проекта или приложения Firebase. Обратите внимание, что большинство API, необходимых для использования служб Firebase, на самом деле не нужно быть в списке Allist для ваших клавиш API.
Поскольку Firebase добавляет необходимые API для всех служб Firebase, AllistList для ключа API может включать API для продуктов, которые вы не используете. Вы можете удалить API-интерфейсы из AlluctList, но вы должны быть очень осторожны, чтобы не удалять API, необходимые для Firebase и используемых вами служб Firebase (см. Список API-интерфейсов, связанных с Firebase , которые должны быть в разрешении для каждого обслуживания / продукта). В противном случае вы получите ошибки при звонке в службы Firebase.
Вы можете просмотреть все свои ключи API и их «ограничения API» в панели API & Services > Drecatials в консоли Google Cloud .
Обратите внимание на следующее о том, как Firebase применяет эти «ограничения API»:
В течение мая 2024 года все существующие и неограниченные клавиши API, которые Firebase ранее имела автоматическую эксплуатацию, ограничены списком API-интерфейсов, связанных с Firebase,плюс любой из API, включенных в настоящее время проекта.
Любые существующие и уже ограниченные клавиши API, которые Firebase ранее имела автоматическую эксплуатацию, не были изменены.
Любые существующие клавиши API, которые не были автоматическими пожарной базой, не были изменены.
Как я могу определить, какой ключ API связан с моим приложением Firebase?
Вы можете использовать любой из следующих вариантов, чтобы определить, какой ключ API связан с вашим приложением Firebase:
Консоль Firebase
Перейдите в settingsнастройки проекта , а затем прокрутите вниз до карты ваших приложений .
Выберите приложение для интереса.
Получите файл/объект конфигурации Firebase для приложения, представляющего интерес, а затем найдите его ключ API:
Apple : Загрузите GoogleService-Info.plist , а затем найдите поле API_KEY
Android : Загрузите google-services.json , найдите конфигурацию для приложения, представляющего интерес (ищите имя его пакета), а затем найдите поле current_key
Web : выберите опцию конфигурации , а затем найдите поле apiKey
В печатной конфигурации Firebase приложения найдите его ключ API:
Apple : найдите поле API_KEY
Android : Найдите конфигурацию для приложения, представляющего интерес (ищите имя его пакета), а затем найдите поле current_key
Интернет : найти поле apiKey
REST-API
Получите apiKeyId (UID) ключа API, вызывая применимую конечную точку для приложения, представляющего интерес, а затем передавая значение apiKeyId на следующий шаг.
Эта keyString является тем же значением, которое можно найти в артефакте конфигурации приложения ( Apple | Android | Web ).
Могу ли я иметь два клавиша API, перечисленные для того же приложения Firebase в моем файле/объекте Firebase Config?
Приложения Apple Firebase - каждое приложение имеет свой собственный файл конфигурации и может иметь только один перечислен один ключ API.
Приложения Android Firebase - все приложения Android в проекте Firebase перечислены в одном файле конфигурации, и в каждом приложении может быть только один ключ API. Каждое приложение в этом файле конфигурации может иметь различный перечисленный ключ.
Веб -приложения Firebase - каждое приложение имеет свой собственный объект конфигурации и может иметь только один перечисленный ключ API.
Однако вы можете использовать несколько клавиш API с одним приложением. Вы должны предоставить для вашего приложения механизм для доступа к этим другим клавишам API, как через переменную среды. Механизм для доступа к другим клавишам API просто не может зависеть от тех ключей API, указанных в вашем файле/объекте Config Firebase.
Как Firebase узнает, какой ключ API соответствует приложению (например, в файле/объекте конфигурации Firebase)?
Если Firebase не найдет никаких ограниченных клавиш, которые соответствуют, то она будет перечислять в файле/объекте Config 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 -ограничениях» Alluctist List для ключа API Firebase?
Для ключа API Firebase единственное API, которое необходимо находиться на ключе «ограничения API», - это API -интерфейс, которые требуют, чтобы клиент обеспечивал ключ API вместе с вызовом. Обратите внимание, что очень немногие API, связанные с огненной базой, имеют это требование. Большинство API, связанных с огненной базой, включенными в вашем проекте, не должны находиться на «Ограничениях API API».
Используйте следующую таблицу, чтобы определить, какие API-интерфейсы, связанные с огненной базой, необходимо включить в «Ограничения API» разрешения для клавиши API Firebase. Помните, что клавиши API Firebase следует использовать только для служб Firebase. Узнайте больше о создании отдельных, ограниченных клавиш API для конкретных типов API .
Вы можете просматривать и управлять ключами API вашего проекта в панели API & Services > Delicents Console Google Cloud Console.
* Требуется только в том случае, если вы используете ключ API Firebase API со сторонними инструментами или прямолинейным доступом к обслуживанию / продукту Firebase.
** Требуется для более ранних версий SDK продукта. Если вы используете последнюю версию SDK, API не должен быть в списке Allucts.
Поиск неисправностей
Как исправить ошибку API_KEY_SERVICE_BLOCKED или FORBIDE 403, в которой говорится, что запросы на этот API заблокированы?
Следуйте руководству в этом FAQ, если вы получаете ошибку 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.
Если вы получаете эту ошибку при попытке использовать службу без фарбазы , то мы настоятельно рекомендуем создать новый ключ API специально для этой службы и API. Ключи API Firebase следует использовать только для служб / продуктов Firebase. Узнайте больше о создании отдельных, ограниченных клавиш API для конкретных типов API .
Как исправить эту ошибку? «Не удалось получить идентификатор измерения этого приложения Firebase с сервера».
Ключ API, используемый вашим веб -приложением, вероятно, имеет примененные «ограничения API» . Если это так, убедитесь, что API управления Firebase Management находится в списке разрешенных API.
Я получил электронное письмо или ошибку, что мой ключ API недействителен. Что случилось и как мне это исправить?
Вот несколько наиболее распространенных причин для недопустимых клавиш API:
Ключ API имеет «ограничения клавиш API», применяемые к нему, что делает его невозможным для приложения, пытающегося использовать ключ («Ограничения приложения») или непригодным для использования API («Ограничения API»).
Ключ API был удален из проекта в Google Cloud .
Ключ API не был создан для идентификатора проекта, указанного в файле/объекте приложения Firebase Config.
[[["Прост для понимания","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-05-29 UTC."],[],[]]