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

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

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

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

Более подробную информацию об этом процессе можно найти в руководстве по началу работы для вашей платформы:
iOS+ | Андроид | сеть | Единство | С++ | Трепетать .

Понимание иерархии проектов 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 Firebase автоматически добавляет метку firebase:enabled на странице «Ярлыки» вашего проекта в консоли Google Cloud . Подробную информацию об этом ярлыке можно найти в разделе часто задаваемых вопросов .

Поскольку проект Firebase является проектом Google Cloud :

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

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

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

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

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

Консоль Firebase

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

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

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

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

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

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

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

REST API управления Firebase

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

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

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

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

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

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

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

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

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

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

Проект Firebase (и связанный с ним проект Google Cloud ) имеет идентификатор проекта . Это определяемый пользователем уникальный идентификатор проекта во всех сервисах Firebase и Google Cloud . Когда вы создаете проект Firebase, 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: GOOGLE_APP_ID (пример значения: 1:1234567890:ios:321abc456def7890 )
      Это не идентификатор пакета Apple.
    • Приложения Firebase для Android: mobilesdk_app_id (пример значения: 1:1234567890:android:321abc456def7890 )
      Это не имя пакета Android или идентификатор приложения Android.
    • Веб-приложения Firebase: 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:

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

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

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

    Имейте в виду, что полное удаление проекта занимает 30 дней и учитывается в квоте проекта до тех пор, пока проект не будет полностью удален.

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

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

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

    Подробную информацию об ограничении количества приложений на проект можно найти в разделе часто задаваемых вопросов.

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

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

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