Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
Эта страница переведена с помощью Cloud Translation API.
Switch to English

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

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

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

Проект Firebase - это объект верхнего уровня для Firebase. В проекте вы создаете приложения Firebase, регистрируя свои приложения для iOS, Android или веб-приложения. После регистрации приложений в Firebase вы можете добавить SDK Firebase для любого количества продуктов Firebase , таких как Analytics, Cloud Firestore, Performance Monitoring или 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 и регистрация приложений

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

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

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

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

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

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

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

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

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

Узнайте больше об использовании идентификаторов проектов, особенно номера проекта, в стандарте Google AIP 2510 .

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

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

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

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

ID проекта

Проект Firebase (и связанный с ним проект Google Cloud ) имеет идентификатор проекта . Это определяемый пользователем уникальный идентификатор проекта во всех 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 Cloud Storage по умолчанию - PROJECT_ID .appspot.com

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

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

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

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

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

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

Узнайте больше об использовании идентификаторов проектов, особенно номера проекта, в стандарте Google AIP 2510 .

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

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

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

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

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

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

  • Для приложений iOS вы добавляете GoogleService-Info.plist конфигурации 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 для iOS: 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 считается общедоступным, включая идентификатор платформы приложения (идентификатор пакета 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 для настройки и управления определенными продуктами Firebase, такими как хостинг Firebase и облачные функции для Firebase.

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

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

Используя REST API управления Firebase , вы можете программно управлять проектом 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 являются вариантами платформы одного и того же приложения с точки зрения конечного пользователя. Например, если вы разрабатываете приложение с белой этикеткой, каждое приложение с независимой пометкой должно иметь собственный проект Firebase.

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

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

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

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

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

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

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

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