Понимание проектов Firebase

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

Взаимосвязь между проектами, приложениями и продуктами Firebase.

Проект Firebase — это сущность верхнего уровня для Firebase. В проекте вы можете зарегистрировать свои приложения для Apple, Android или веб-приложения. После регистрации приложений в Firebase вы можете добавить SDK Firebase для любого количества продуктов Firebase , таких как Analytics , Cloud Firestore , Performance Monitoring или Remote Config .

Более подробную информацию об этом процессе вы найдете в руководстве по началу работы для вашей платформы:
iOS+ | Android | web | Unity | C++ | Flutter .

Понимание иерархии проектов Firebase

Диаграмма, показывающая базовую иерархию проекта Firebase, включая: проект, зарегистрированные в нем приложения, а также выделенные ресурсы и сервисы. На этой диаграмме показана базовая иерархия проекта Firebase. Вот основные взаимосвязи:

  • Проект Firebase — это своего рода контейнер для всех ваших приложений, а также любых ресурсов и сервисов, выделенных для проекта.

  • К проекту Firebase может быть зарегистрировано одно или несколько приложений Firebase (например, версии приложения для iOS и Android, или бесплатная и платная версии).

  • Все приложения Firebase, зарегистрированные в одном проекте Firebase , совместно используют одни и те же ресурсы и сервисы, выделенные для проекта . Вот несколько примеров:

    • Все приложения Firebase, зарегистрированные в одном проекте Firebase, используют одни и те же бэкэнды, такие как Firebase Hosting , Authentication , Realtime Database , Cloud Firestore , Cloud Storage и Cloud Functions .

    • Все приложения Firebase, зарегистрированные в одном проекте Firebase, связаны с одним и тем же ресурсом Google Analytics, при этом каждое приложение Firebase представляет собой отдельный поток данных в этом ресурсе.

Взаимосвязь между проектами Firebase и Google Cloud

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

Обратите внимание, что для всех проектов Firebase в консоли Google Cloud на странице «Метки» автоматически добавляется метка firebase:enabled . Подробнее об этой метке можно узнать в разделе часто задаваемых вопросов (FAQ) .

Поскольку проект Firebase — это проект Google Cloud :

  • Вы можете получить доступ к проекту и взаимодействовать с ним в консоли Firebase , а также в консоли Google Cloud и консоли Google API .

  • Взаимодействовать с проектом можно с помощью Firebase CLI , gcloud CLI и любых ресурсов Terraform от Google.

  • В проекте можно использовать продукты и API как Firebase, так и Google Cloud .

  • Права доступа и роли IAM для проекта используются совместно Firebase и Google Cloud . Любой доступ, который участник проекта (то есть субъект) имеет к вашему проекту Google Cloud также будет применяться к вашему проекту Firebase (и наоборот).

  • Оплата за проект осуществляется совместно Firebase и Google Cloud . Если в вашем проекте Google Cloud включена оплата, то ваш проект Firebase будет использовать тарифный план Firebase Blaze с оплатой по мере использования.

  • Уникальные идентификаторы проекта (такие как номер проекта и идентификатор проекта ) используются совместно Firebase и Google Cloud .

  • Любая иерархия ресурсов , применяемая к вашему проекту Google Cloud (например, организация, папки и т. д.), также будет применяться к вашему проекту Firebase.

  • Удаление проекта приведет к его удалению во всех средах Firebase и Google Cloud .

  • Удаление или изменение ресурсов или данных в рамках проекта применимо как к Firebase, так и Google Cloud .

Настройка проекта Firebase и регистрация приложений

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

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

Взаимодействие с проектом Firebase

Помимо SDK продукта, вы можете напрямую взаимодействовать с проектом Firebase, используя несколько различных инструментов и интерфейсов.

Консоль Firebase

Консоль Firebase предоставляет наиболее широкие возможности для управления продуктами Firebase, приложениями и настройками на уровне проектов.

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

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

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

Firebase CLI (инструмент командной строки)

Firebase также предлагает Firebase CLI для настройки и управления отдельными продуктами Firebase, такими как Firebase Hosting , Cloud Functions for Firebase и Firebase Extensions .

После установки CLI вы получаете доступ к глобальной команде firebase . Используйте CLI для привязки локального каталога вашего приложения к проекту Firebase , а затем развертывайте новые версии контента, размещенного в Firebase, или обновления функций.

Firebase Management REST API

Используя REST API управления Firebase , вы можете программно управлять проектом Firebase. Например, вы можете программно зарегистрировать приложение в проекте или вывести список уже зарегистрированных приложений ( iOS+ | Android | web ).

Идентификаторы проектов Firebase

Проект Firebase можно идентифицировать в бэкэнде Firebase и в различных интерфейсах разработчиков с помощью различных идентификаторов, включая название проекта , номер проекта и идентификатор проекта .

Название проекта

При создании проекта вы указываете его имя . Этот идентификатор является внутренним именем проекта в консоли Firebase , консоли Google Cloud и Firebase CLI . Имя проекта не отображается ни в одном общедоступном продукте, сервисе или ресурсе Firebase или Google Cloud ; оно просто помогает вам легче различать несколько проектов.

Вы можете изменить название проекта в любое время в проекта в консоли Firebase . Название проекта отображается в верхней панели.

Номер проекта

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

Вы не можете изменить номер проекта. Если вы удаляете проект, номер проекта также удаляется и никогда больше не может быть использован ни в одном другом проекте.

Идентификатор проекта

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

Конфигурационные файлы и объекты Firebase

При регистрации приложения в проекте Firebase консоль Firebase предоставляет файл конфигурации Firebase (для приложений Apple/Android) или объект конфигурации (для веб-приложений), который вы добавляете непосредственно в локальный каталог вашего приложения.

  • Для приложений Apple необходимо добавить конфигурационный файл GoogleService-Info.plist .
  • Для приложений Android необходимо добавить конфигурационный файл google-services.json .
  • Для веб-приложений необходимо добавить объект конфигурации Firebase.

В любой момент вы можете получить доступ к файлу конфигурации Firebase или его объекту .

Конфигурационный файл или объект Firebase связывает приложение с конкретным проектом Firebase и его ресурсами (базами данных, хранилищами и т. д.). Конфигурация включает в себя «параметры Firebase», которые являются параметрами, необходимыми для взаимодействия Firebase и сервисов Google с API сервера Firebase и для связывания данных клиента с проектом Firebase и приложением Firebase. Вот минимальный необходимый набор «параметров Firebase»:

  • Ключ API : простая зашифрованная строка, используемая при вызове определенных API, которым не требуется доступ к личным данным пользователя (пример значения: AIzaSyDOCAbC123dEf456GhI789jKl012-MnO ).

  • Идентификатор проекта : определяемый пользователем уникальный идентификатор проекта во всех средах Firebase и Google Cloud . Этот идентификатор может отображаться в URL-адресах или именах некоторых ресурсов Firebase, но, как правило, его следует рассматривать как удобный псевдоним для ссылки на проект. (пример значения: myapp-project-123 )

  • Идентификатор приложения ("AppID") : уникальный идентификатор приложения Firebase во всей системе Firebase, имеющий формат, специфичный для платформы:

    • Firebase Apple apps: GOOGLE_APP_ID (пример значения: 1:1234567890:ios:321abc456def7890 )
      Это не идентификатор пакета Apple.
    • Приложения Firebase для Android: mobilesdk_app_id (пример значения: 1:1234567890:android:321abc456def7890 )
      Это не имя пакета Android и не идентификатор приложения Android.
    • Firebase Web apps: appId (пример значения: 1:65211879909:web:3ae38ef1cdcb2e01fe5f0c )

Содержимое файла конфигурации Firebase или объекта конфигурации считается общедоступным, включая идентификатор приложения, специфичный для платформы (идентификатор пакета Apple или имя пакета Android), и значения, специфичные для проекта Firebase, такие как ключ API, идентификатор проекта, URL-адрес Realtime Database и имя сегмента Cloud Storage . Учитывая это, используйте Firebase Security Rules для защиты ваших данных и файлов в Realtime Database , Cloud Firestore и Cloud Storage .

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

Общие ограничения для проектов, приложений и сайтов Firebase.

Вот некоторые общие ограничения для проектов, приложений и сайтов Firebase:

  • Количество проектов на один аккаунт Google (адрес электронной почты)

    • Тарифный план Spark : квота на создание проектов ограничена небольшим количеством проектов (обычно около 5-10).
    • Тарифный план Blaze : Квота на создание проектов по-прежнему ограничена, но может быть увеличена при подключении действующей учетной записи Cloud Billing .

    Обратите внимание на следующее ограничение по квоте на создание проектов:

    • Это ограничение не является специфическим для Firebase. Ограничения Firebase на проектные квоты такие же, как и в Google Cloud .
    • В редких случаях, когда это необходимо, вы можете запросить увеличение квоты по проекту .
    • Полное удаление проекта занимает 30 дней и учитывается в рамках проектной квоты до тех пор, пока проект не будет полностью удален.

    Узнайте о рекомендуемых Firebase общих принципах настройки проектов Firebase .

  • Количество приложений на проект

    Firebase ограничивает общее количество приложений Firebase в проекте Firebase до 30.

    Необходимо убедиться, что все приложения Firebase в рамках одного проекта Firebase являются вариантами одного и того же приложения с точки зрения конечного пользователя. Подробнее о многопользовательском режиме читайте в наших документах с рекомендациями.

    Подробнее об ограничении на количество приложений в одном проекте можно узнать в разделе часто задаваемых вопросов (FAQ).

  • Количество Hosting сайтов на проект

    Функция мультисайтовой Firebase Hosting поддерживает максимум 36 сайтов на проект.

Запуск вашего приложения