Catch up on everthing we announced at this year's Firebase Summit. Learn more

См. Пример цен на Cloud Firestore

Используйте этот реальный пример базового приложения для чата, чтобы оценить использование и затраты Cloud Firestore. Это не точная оценка, но она может помочь вам лучше понять, как выставляется счет за использование Cloud Firestore.

Обзор: затраты по уровню использования

Чтобы проиллюстрировать типичные затраты, рассмотрим пример чат-приложения, в котором пользователи могут инициировать чаты с двумя или более участниками. Пользователи могут видеть свои активные чаты в списке, читать сообщения и отправлять сообщения. Для этого примера мы используем ценообразование для Северной Америки мульти-региона ( в частности , nam5 ).

Предположения

Примите во внимание следующие предположения об использовании и хранении данных:

  • Ежедневные активные пользователи (DAU) составляют 10% от общего числа установок приложений. Вы можете оценить свои ежедневные расходы, используя приблизительную оценку ваших ежедневных активных пользователей (DAU). Это пользователи, которые активно открывают и используют ваше приложение в определенный день, что обычно составляет небольшую часть от общего числа установленных вами приложений. Для расчетов ниже мы оценили DAU как 10% от общего количества установок приложения.
  • Размеры документов относительно небольшие. Смотрите таблицу ниже для разбивки размера документа по типу.
  • Данные хранятся всего три месяца. Сообщения в примере приложения чата хранятся только в течение трех месяцев. Чтобы учесть операции удаления, приведенные ниже расчеты показывают ежедневное удаление для каждой ежедневной записи.
  • Эти оценки затрат отражают большую часть затрат на пример приложения, но не все из них. Мы учли большую часть затрат на приложение, рассчитав операции, хранилище пользователей и сообщений, а также исход для наиболее частых пользовательских задач, описанных в этом руководстве. Однако вам может потребоваться учесть дополнительные расходы в зависимости от структуры вашего приложения и потребностей в данных. Используйте этот пример , чтобы направлять свои расчеты, но обратитесь к странице цен для более тщательного объяснения затрат Облака Firestore.

Для разбивки операций по задаче пользователя см Разбивка: использование , выставленного задач пользователя раздел.

Небольшой
(50k установок)

Для 50000 установок приложения (5000 активных пользователей в день): 12,14 доллара США в месяц.

Стоимость чтения / записи
Общая ежемесячная стоимость = 11,10 $ / мес.
400 тыс. Ежедневных чтений знак равно 50K БЕСПЛАТНЫХ чтений + (350K чтений по цене 0,06 $ / 100K) знак равно 3,5 * 0,06 $
0,21 $ / день * 30 = 6,30 $
100 тыс. Записей в день знак равно 20 КБ БЕСПЛАТНЫХ записей + (80 КБ записей по цене 0,18 долл. США / 100 КБ) знак равно 0,8 * 0,18 долл. США
0,14 $ / день * 30 = 4,20 $
100 тыс. Удалений в день знак равно 20 КБ БЕСПЛАТНЫХ удалений + (80 КБ удалений по цене 0,02 доллара США / 100 КБ) знак равно 0,8 * 0,02 доллара
0,02 доллара США в день * 30 = 0,60 доллара США
Затраты на хранилище / сеть
Общая ежемесячная стоимость = 1,04 доллара США в месяц.
20 КБ / DAU ежедневного исходящего трафика * 5 тыс. DAU знак равно 100 МБ ежедневного исходящего трафика * 30 знак равно 3 ГБ выходящей сети в месяц
3 Гб свободного выход = 1 бесплатно
15KB хранения ежедневно сообщение / УСД + 3KB хранения / установки 2 знак равно 45 КБ хранилища / DAU * 5K DAU знак равно 225 МБ ежедневного хранилища / DAU * 30 знак равно 6,75 ГБ ежемесячного использования хранилища
1 ГБ БЕСПЛАТНОГО хранилища + (5,75 * 0,18 USD) = 1,04 USD в месяц

1 10GB ежемесячной сети выхода является бесплатным для облачных Firestore.
2 Так как наше предположение о том , что Дос составляют 10% от общего числа установок приложений, это число составляет от общего числа пользователей, которые установили приложение.

Середина
(1 млн установок)

За 1 000 000 установок приложения (100 000 активных пользователей в день): 292,02 доллара США в месяц.

Стоимость чтения / записи
Общая ежемесячная стоимость = 261,90 $ / мес.
8 млн ежедневных чтений знак равно 50 тыс. БЕСПЛАТНЫХ чтений + (7,95 млн чтений по цене 0,06 долл. США / 100 тыс.) знак равно 79,5 * 0,06 $
4,77 $ / день * 30 = 143,10 $
2 млн записей в день знак равно 20 КБ БЕСПЛАТНЫХ записей + (1,98 млн записей по цене 0,18 долл. США / 100 КБ) знак равно 19,8 * 0,18 $
3,56 $ / день * 30 = 106,80 $
2 млн удалений в день знак равно 20 000 БЕСПЛАТНЫХ удалений + (1,98 млн удалений по цене 0,02 долл. США / 100 000) знак равно 19,8 * 0,02 $
0,40 доллара США в день * 30 = 12 долларов США
Затраты на хранилище / сеть
Общая ежемесячная стоимость = 30,12 $ / мес.
20 КБ / DAU ежедневного исходящего трафика * 100 тыс. DAU знак равно 2 ГБ ежедневного исходящего трафика * 30 знак равно 60 ГБ выходящей сети в месяц
БЕСПЛАТНО 10 ГБ исходящего трафика + (50 ГБ исходящего трафика * 0,12 доллара США за ГБ) = 6 долларов США в месяц
15KB хранения ежедневно сообщение / УСД + 3KB хранения / установки 1 знак равно 45 КБ хранилища / DAU * 100K DAU знак равно 4,5 ГБ ежедневного хранилища / DAU * 30 знак равно 135 ГБ ежемесячного использования хранилища
1 ГБ БЕСПЛАТНОГО хранилища + (134 ГБ * 0,18 USD / ГБ) = 24,12 USD в месяц

1 Так как наше предположение о том , что Дос составляют 10% от общего числа установок приложений, это число составляет от общего числа пользователей, которые установили приложение.

Большой
(10 млн установок)

За 10 000 000 установок приложения (1 000 000 активных пользователей в день): 2951,52 доллара США.

Стоимость чтения / записи
Общая ежемесячная стоимость = Итого: 2637,90 $ / месяц
80 млн ежедневных чтений знак равно 50 тыс. БЕСПЛАТНЫХ чтений + (79,95 млн чтений по цене 0,06 долл. США / 100 тыс.) знак равно 799,5 * 0,06 $
47,97 $ / день * 30 = 1439,10 $
20 миллионов записей в день знак равно 20 КБ БЕСПЛАТНЫХ операций записи + (19,98 млн операций записи по цене 0,18 долл. США / 100 КБ) знак равно 199,8 * 0,18 $
35,96 $ / день * 30 = 1078,80 $
20 миллионов удалений в день знак равно 20 000 БЕСПЛАТНЫХ удалений + (19,98 млн удалений по цене 0,02 доллара США / 100 000) знак равно 199,8 * 0,02 $
4 доллара США в день * 30 = 120 долларов США
Затраты на хранилище / сеть
Общая ежемесячная стоимость = 313,62 $ / мес.
20 КБ / DAU ежедневного исходящего трафика * 1 млн DAU знак равно 20 ГБ ежедневного исходящего трафика * 30 знак равно 600 ГБ исходящей сети в месяц
БЕСПЛАТНО 10 ГБ исходящего + (590 ГБ исходящего * 0,12 доллара США / ГБ) = 70,80 доллара США в месяц
15KB хранения ежедневно сообщение / УСД + 3KB хранения / установки 1 знак равно 45 КБ памяти / DAU * 1M DAU знак равно 45 ГБ ежедневного хранилища / DAU * 30 знак равно 1350 ГБ ежемесячного использования хранилища
(1 ГБ БЕСПЛАТНОГО хранилища) + (1349 ГБ * 0,18 доллара США за ГБ) = 242,82 доллара США в месяц

1 Так как наше предположение о том , что Дос составляют 10% от общего числа установок приложений, это число составляет от общего числа пользователей, которые установили приложение.

Преимущество модели биллинга Cloud Firestore, которое стоит учитывать, заключается в том, что вы платите только за то, что используете. В результате ваш счет может расти и уменьшаться вместе с количеством DAU.

Разбивка: оплачиваемое использование по задачам пользователя

Для нашего примера чат-приложения структура данных выглядит следующим образом:

  • users/{userId} - записи пользователя
  • groups/{groupId} - Чаты между 2 или более пользователей
    • messages/{messageId} - Каждое сообщение в чате.

Хранилище данных

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

Коллекция Размер документа (в пути) Размер документа (на диске) *
пользователи 1 КБ 3 КБ
группы 0,5 КБ 1,5 КБ
Сообщения 0,25 КБ 0,75 КБ

* Этот расчет размера включает индексы для полей сообщения, но предполагает, что индексирование содержимого сообщения отключено.

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

Для получения дополнительной информации о расчете затрат на хранение, см Understanding вычисления размера хранения .

Операции

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

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

  • Считывает: (5 * 10) + (30) = 80 чтения / пользователь / день
  • Пишет: (10 * 2) = 20 Пишет / пользователь / день
  • Сеть Выход: (50 * 0.25KB) + (30 * 0.25KB) = 20KB / пользователь / день
  • Хранение: (20 * 0.75KB) = 15 KB / пользователь / день

Общее использование по пользовательской задаче

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

Посмотреть список чатов

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

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

db.collection('groups')
  .where('participants', 'array-contains', 'user123')
  .where('lastUpdated', '>', lastFetchTimestamp)
  .orderBy('lastUpdated', 'desc')
  .limit(25)

Предположим, что каждый раз, когда пользователь проверяет приложение, обновляется в среднем 10 чатов. Этот запрос вызывает только 10 чтений документа.

Читать сообщения в чате

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

Предположим, что типичный пользователь выполняет это действие 5 раз в день (один раз при каждом открытии главного экрана), что приводит к 250 чтениям на пользователя каждый день. Мы также можем ограничить наш запрос новыми сообщениями с момента последней выборки:

db.collection('groups')
  .doc('group234')
  .collection('messages')
  .where('sentTime', '>', lastFetchTimestamp)
  .orderBy('sentTime', 'desc')
  .limit(50)

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

Отправить сообщение в чат

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

Каждое сообщение , отправленное вызывает две операции записи документа: один запись в messages подколлекции чата и одну записи в чате родительского документа , чтобы обновить lastUpdated метки времени и другие метаданные.

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

Включенные преимущества: бесплатные услуги для вашего приложения

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

  • Прямой доступ клиента: Cloud Firestore осуществляется непосредственно из вашего кода клиента , используя наши родные SDKs. Это означает, что вам не нужно создавать и запускать сервер API для подключения мобильных клиентов к базе данных.
  • Балансировка нагрузки: Поскольку облако Firestore автоматически масштабируется для поддержки трафика в вашу базу данных, вам не нужно запускать балансировки нагрузки.
  • Провел сервера: базы данных Cloud Firestore работать на серверах Google Cloud, предлагая более 99% в месяц безотказной работы .
  • Аутентификация: AUTHENTICATE неограниченное число пользователей просто и надежно с Firebase аутентификацией . Firebase Authentication напрямую интегрируется с Cloud Firestore, поэтому вам не нужно запускать собственную службу аутентификации.
  • Нажмите уведомление: Отправлять сообщения и уведомление с Cloud Messaging .
  • Другие Firebase продукты: Интегрировать другие бесплатные продукты Firebase, в том числе A / B тестирование, аналитика, Crashlytics, мониторинга производительности, Предсказания и Remote Config. Узнайте больше о других Firebase продуктов и Firebase ценообразования .