Понять проекты Firebase

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

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

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

Узнать более подробную информацию об этом процессе в руководствах по началу работы ( IOS | Android | Интернет | Unity | C ++ ).

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

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

Так как проект Firebase проект Google Cloud:

  • Проекты , которые появляются в консоли Firebase также появится в Google Cloud Console и консоль Google APIs .

  • Billing и разрешения для проектов являются общими для всех Firebase и Google Cloud.

  • Уникальные идентификаторы для проекта (например , на номер проекта и проекта ID ) являются общими для всех Firebase и Google Cloud.

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

  • При удалении проекта он удаляется из Firebase и Google Cloud.

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

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

Убедитесь в том , чтобы рассмотреть некоторые лучшие практики общего уровня проекта (в нижней части этой страницы) до создания проекта и регистрации приложений.

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

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

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

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

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

Вызовы API и номер проекта

Для многих вызовов API необходимо включать уникальный идентификатор проекта. Хотя многие интерфейсы принимают идентификатор проекта , рекомендуется использовать номер проекта для создания API вызовов на Firebase, Google, или услуги третьих лиц.

Дополнительные сведения об использовании идентификаторов проекта, особенно номер проекта, в компании Google AIP стандарта 2510 .

Найдите номер проекта

  • Firebase консоли: Нажмите кнопку параметров проекта . Номер проекта отображается в верхней панели.

  • Firebase CLI: Run firebase projects:list . Номер проекта отображается вместе со всеми проектами Firebase, связанными с вашей учетной записью.

  • Firebase Управление REST API: Call projects.list . Тело ответа содержит номер проекта в FirebaseProject объекта.

ID проекта

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

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

Ресурсы Firebase и идентификатор проекта

Идентификатор проекта отображается в общедоступных ресурсах Firebase, например:

  • По умолчанию хостинг поддомен - PROJECT_ID .web.app и PROJECT_ID .firebaseapp.com
  • По умолчанию в режиме реального времени базы данных URL - PROJECT_ID -default-rtdb.firebaseio.com или PROJECT_ID -default-rtdb. REGION_CODE .firebasedatabase.app
  • По умолчанию Облако хранения имя ведро - PROJECT_ID .appspot.com

Для всех вышеупомянутых ресурсов вы можете создавать экземпляры не по умолчанию. Общедоступные имена нестандартных значений можно полностью настроить. Вы можете подключить собственные домены к Firebase-размещение сайта, шард базы данных в реальном времени , а также создать несколько ведер Cloud Storage (посещение конкретной платформы Get Started страницу).

Интерфейс командной строки Firebase и идентификатор проекта

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

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

Вызовы API и идентификатор проекта

Для многих вызовов API необходимо включать уникальный идентификатор проекта. Хотя многие интерфейсы принимают идентификатор проекта, это рекомендуется использовать номер проекта для создания API вызовов на Firebase, Google, или услуги третьих лиц.

Дополнительные сведения об использовании идентификаторов проекта, особенно номер проекта, в компании Google AIP стандарта 2510 .

Найдите идентификатор проекта

  • Firebase консоли: Нажмите кнопку параметров проекта . Идентификатор проекта отображается на верхней панели.

  • Firebase CLI: Run firebase projects:list . Идентификатор проекта отображается вместе со всеми проектами Firebase, связанными с вашей учетной записью.

  • Firebase Управление REST API: Call projects.list . Тело ответа содержит идентификатор проекта в FirebaseProject объекта.

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

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

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

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

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

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

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

  • ID приложения ( «AppID»): уникальный идентификатор для приложения Firebase через все Firebase с форматом платформа специфичным:

    • Firebase IOS - приложений: GOOGLE_APP_ID (Пример значения: 1:1234567890:ios:321abc456def7890 )
      Это не Apple , расслоение ID.
    • Firebase программы: mobilesdk_app_id (Пример значения: 1:1234567890:android:321abc456def7890 )
      Это не имя Android пакета или Android приложений ID.
    • Firebase веб - приложений: appId (Пример значения: 1:65211879909:web:3ae38ef1cdcb2e01fe5f0c )

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

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

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

Убедитесь в том , чтобы рассмотреть лучшие практики общего уровня проекта (в нижней части этой страницы) для соображений , которые могут повлиять как управлять проектом Firebase.

Инструменты для управления проектом

Консоль Firebase

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

Консоль Firebase - экран обзора проекта

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

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

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

Firebase также предлагает Firebase CLI для конфигурирования и управления конкретных продуктов Firebase, как Firebase Хостинг и облачные функции для Firebase.

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

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

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

Общие передовые практики

Добавление приложений в проект

Убедитесь , что все приложения в рамках проекта варианты платформы одного и того же приложения с точки зрения конечного пользователя. Желательно зарегистрировать iOS, Android и веб-версии одного и того же приложения или игры в одном проекте Firebase. Все приложения в проекте обычно используют одни и те же ресурсы Firebase (база данных, сегменты хранилища и т. Д.).

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

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

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

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

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

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

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

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

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

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

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

    Firebase хостинга многоузловой функции поддерживает максимум 36 сайтов в проект.

Мульти аренды

Не рекомендуется подключать несколько различных логически независимых приложений и / или веб-сайтов к одному проекту Firebase (часто называемому «мультитенантность»). Мультиарендность может привести к серьезным проблемам с конфигурацией и конфиденциальностью данных, включая непреднамеренные проблемы с агрегацией аналитики, общей аутентификацией, чрезмерно сложными структурами базы данных и трудностями с правилами безопасности.

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

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

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