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

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

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

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

Более подробную информацию об этом процессе можно найти в руководстве по началу работы для вашей платформы:
iOS+ | Android | веб | 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 Firebase автоматически добавляет метку firebase:enabled на странице Метки для вашего проекта в консоли Google Cloud . Узнайте больше об этой метке в нашем 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 (или, для расширенных случаев использования, с помощью Firebase Management REST API или Firebase CLI ). Когда вы настраиваете проект и регистрируете приложения, вам необходимо принять некоторые организационные решения и добавить специфичную для Firebase информацию о конфигурации в ваши локальные проекты.

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

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

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

Консоль Firebase

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

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

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

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

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

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

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

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

При создании проекта вы указываете имя проекта . Этот идентификатор является внутренним именем только для проекта в консоли Firebase , консоли Google Cloud и Firebase CLI . Имя проекта не отображается ни в одном публично видимом продукте, сервисе или ресурсе 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 )

  • Project ID : уникальный идентификатор проекта, определяемый пользователем во всех 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:

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

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

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

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

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

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

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

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

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

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

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

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

,

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

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

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

Более подробную информацию об этом процессе можно найти в руководстве по началу работы для вашей платформы:
iOS+ | Android | веб | 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 Firebase автоматически добавляет метку firebase:enabled на странице Метки для вашего проекта в консоли Google Cloud . Узнайте больше об этой метке в нашем 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 (или, для расширенных случаев использования, с помощью Firebase Management REST API или Firebase CLI ). Когда вы настраиваете проект и регистрируете приложения, вам необходимо принять некоторые организационные решения и добавить специфичную для Firebase информацию о конфигурации в ваши локальные проекты.

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

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

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

Консоль Firebase

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

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

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

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

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

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

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

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

При создании проекта вы указываете имя проекта . Этот идентификатор является внутренним именем только для проекта в консоли Firebase , консоли Google Cloud и Firebase CLI . Имя проекта не отображается ни в одном публично видимом продукте, сервисе или ресурсе 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 )

  • Project ID : уникальный идентификатор проекта, определяемый пользователем во всех 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:

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

    • План ценообразования Spark : Квота создания проекта ограничена небольшим количеством проектов (обычно около 5-10).
    • План ценообразования Blaze Cloud Billing

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

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

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

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

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

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

    Узнайте больше о ограничении приложений по проекту в FAQ.

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

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

Запустить ваше приложение