Ver um exemplo de preços do Cloud Firestore

Use este exemplo real de um app de bate-papo básico para avaliar o uso e os custos do Cloud Firestore. Esta não é uma estimativa exata, mas pode ajudar você a entender melhor como o uso do Cloud Firestore é faturado.

Visão geral: custos por nível de uso

Para ilustrar os custos típicos, considere um exemplo de app de chat, no qual os usuários podem iniciar chats com dois ou mais participantes. Os usuários podem ver seus chats ativos em uma lista e ler e enviar mensagens. Neste exemplo, usamos os preços para a multirregião da América do Norte, precisamente nam5.

Suposições

Considere as seguintes suposições sobre uso e armazenamento de dados:

  • Usuários ativos diários (DAUs) são 10% do total de instalações do app. Você pode estimar seus custos diários usando uma estimativa aproximada de seus Usuários ativos diários (DAUs). Esses são os usuários que ativamente abrem e usam seu app em um determinado dia, o que geralmente é um pequeno subconjunto das instalações totais do app. Para os cálculos abaixo, estimamos DAUs como 10% do número total de instalações do app.
  • Tamanhos de documentos são relativamente pequenos. Confira a tabela abaixo para uma análise detalhada do tamanho de documentos por tipo.
  • Os dados são armazenados apenas por três meses. As mensagens no app de chat de exemplo são armazenadas apenas por um período de três meses. Para contabilizar as operações de exclusão, os cálculos abaixo mostram uma exclusão diária para cada gravação diária.
  • Essas estimativas de custo refletem a maior parte dos custos do app de exemplo, mas não todos eles. Estimamos a maior parte dos custos de um app calculando operações, armazenamento de usuários e de mensagens e saída para as tarefas de usuários mais frequentes descritas neste guia. No entanto, talvez você precise considerar os custos de adicionalidade, dependendo da estrutura e das necessidades de dados de seu app. Use este exemplo para guiar seus cálculos, mas consulte a página de preços para explicações mais completas sobre os custos do Cloud Firestore.

Para uma análise detalhada das operações por tarefa do usuário, consulte a seção Detalhamento: uso faturado por tarefa do usuário.

Pequeno
(50 mil instalações)

Para 50 mil instalações de apps (5 mil usuários ativos diários): US$ 12,14/mês

Custos de leitura/gravação
Custo mensal total = US$ 11,10/mês
400 mil leituras diárias totais = 50 mil leituras sem custos + 350 mil leituras a US$ 0,06/100 mil = 3,5 * US$ 0,06
US$ 0,21/dia * 30 = US$ 6,30
 
Total de 100 mil gravações diárias = 20 mil gravações sem custos + 80 mil gravações a US$ 0,18/100 mil = 0,8 * US$ 0,18
US$ 0,14/dia * 30 = US$ 4,20
 
Total de 100 mil exclusões diárias = 20 mil exclusões sem custos + 80 mil exclusões a US$ 0,02/100 mil = 0,8 * US$ 0,02
US$ 0,02/dia * 30 = US$ 0,60
Custos de armazenamento/rede
Custo mensal total = US$ 1,04/mês
20 KB/DAU de saída diária * 5 mil DAUs = 100 MB de saída diária * 30 = Saída de rede mensal de 3 GB
Saída de 3 GB sem custos = sem custos1
 
15 KB de armazenamento diário de mensagens/DAU + 3 KB de armazenamento/instalação2 = 45 KB de armazenamento/DAU * 5 mil DAUs = 225 MB de armazenamento diário/DAU * 30 = Uso mensal de armazenamento de 6,75 GB
1 GB de armazenamento sem custos + 5,75 * US$ 0,18 = US$ 1,04/mês

1 10 GB de saída de rede mensal não são cobrados no Cloud Firestore.
2Como supomos que os DAUs são 10% do total de instalações do app, esse número representa o total de usuários que instalaram seu aplicativo.

Médio
(1 milhão de instalações)

Para 1 milhão de instalações de aplicativo (100 mil usuários ativos diariamente): US$ 292,02/mês

Custos de leitura/gravação
Custo mensal total = US$ 261,90/mês
8 milhões de leituras diárias totais = 50 mil leituras sem custos + 7,95 milhões de leituras a US$ 0,06/100 mil = 79,5 * US$ 0,06
US$ 4,77/dia * 30 = US$ 143,10
 
2 milhões de gravações diárias = 20 mil gravações sem custos + 1,98 milhões de gravações a US$ 0,18/100 mil = 19,8 * US$ 0,18
US$ 3,56/dia * 30 = US$ 106,80
 
2 milhões de exclusões diárias totais = 20 mil exclusões sem custos + 1,98 milhões de exclusões a US$ 0,02/100 mil = 19,8 * US$ 0,02
US$ 0,40/dia * 30 = US$ 12,00
Custos de armazenamento/rede
Custo mensal total = US$ 30,12/mês
20 KB/DAU de saída diária * 100 mil DAUs = 2 GB de saída diária * 30 = Saída de rede mensal de 60 GB
10 GB de saída sem custos + 50 GB de saída * US$ 0,12/GB = US$ 6,00/mês
 
15 KB de armazenamento diário de mensagens/DAU + 3 KB de armazenamento/instalação1 = 45 KB de armazenamento/DAU * 100 mil DAUs = 4,5 GB de armazenamento diário/DAU * 30 = Uso de armazenamento mensal de 135 GB
1 GB de armazenamento sem custos + (134 GB * US$ 0,18/GB) = US$ 24,12/mês

1 Como supomos que os DAUs são 10% do total de instalações do app, esse número representa o total de usuários que instalaram seu aplicativo.

Grande
(10 milhões de instalações)

Para 10 milhões de instalações do app (1 milhão de usuários ativos diários): US$ 2.951,52

Custos de leitura/gravação
Custo mensal total = Total: US$ 2.637,90/mês
80 milhões de leituras diárias = 50 mil leituras sem custos + 79,95 milhões de leituras a US$ 0,06/100 mil = 799,5 * US$ 0,06
US$ 47,97/dia * 30 = US$ 1.439,10
 
20 milhões de gravações diárias totais = 20 mil gravações sem custos + 19,98 milhões de leituras a US$ 0,18/100 mil = 199,8 * US$ 0,18
US$ 35,96/dia * 30 = US$ 1.078,80
 
20 milhões de exclusões diárias totais = 20 mil exclusões sem custos + 19,98 milhões de exclusões a US$ 0,02/100 mil = 199,8 * US$ 0,02
US$ 4,00/dia * 30 = US$ 120,00
Custos de armazenamento/rede
Custo mensal total = US$ 313,62/mês
20 KB/DAU de saída diária * 1 milhão de DAUs = 20 GB de saída diária * 30 = Saída de rede mensal de 600 GB
10 GB de saída sem custos + 590 GB de saída * US$ 0,12/GB = US$ 70,80/mês
 
15 KB de armazenamento diário de mensagens/DAU + 3 KB de armazenamento/instalação1 = 45 KB de armazenamento/DAU * 1 milhão de DAUs = 45 GB de armazenamento diário/DAU * 30 = 1.350 GB de uso mensal de armazenamento
1 GB de armazenamento sem custos + 1.349 GB * US$ 0,18/GB = US$ 242,82/mês

1 Como supomos que os DAUs são 10% do total de instalações do app, esse número representa o total de usuários que instalaram seu aplicativo.

Um benefício do modelo de faturamento do Cloud Firestore a ser considerado é que você paga apenas pelo que usa. Como resultado, sua fatura pode aumentar e diminuir com a contagem de DAUs.

Detalhamento: uso faturado pela tarefa do usuário

Nosso aplicativo de chat de exemplo usa a seguinte estrutura de dados:

  • users/{userId}: registros de usuário;
  • groups/{groupId}: chats entre dois ou mais usuários;
    • messages/{messageId}: cada mensagem de um chat.

Armazenamento de dados

Para calcular os custos de armazenamento dos dados do app, aplique as seguintes suposições sobre tamanhos de documentos:

Coleção Tamanho do documento (em trânsito) Tamanho do Documento (no disco)*
usuários 1 KB 3 KB
grupos 0,5 KB 1,5 KB
mensagens 0,25 KB 0,75 KB

*Este cálculo de tamanho inclui índices para os campos de mensagem, mas assume que a indexação está desativada para o conteúdo da mensagem.

O app armazena apenas mensagens com até três meses, para reduzir os custos de armazenamento.

Para saber mais informações sobre o cálculo de custos de armazenamento, consulte Noções básicas sobre cálculos de tamanho de armazenamento.

Operações

Os usuários geralmente concluem as seguintes tarefas comuns no app:

As operações totais estimadas do app de exemplo no Cloud Firestore para as três tarefas típicas de usuário são as seguintes:

  • Ler: (5 * 10) + (30) = 80 leituras/usuário/dia
  • Escrever: (10 * 2) = 20 escritas/usuário/dia
  • Saída de rede: (50 * 0,25 KB) + (30 * 0,25 KB) = 20 KB/usuário/dia
  • Armazenamento: (20 * 0,75 KB) = 15 KB/usuário/dia

Uso total por tarefa do usuário

Selecione cada tarefa do usuário para ver uma descrição completa e o detalhamento dos custos de operação, armazenamento e rede no app.

Ver a lista de chats

A tela inicial do app carrega os 25 chats mais recentes, com cobrança de 25 leituras de documentos. Suponha que um usuário ativo abra o app cinco vezes por dia, totalizando 125 leituras por usuário por dia. No entanto, consultas mais eficientes, como a do exemplo a seguir, podem reduzir essa carga.

No exemplo abaixo, limitamos a consulta a novos chats usando um carimbo de data/hora de cada busca bem-sucedida, armazenada pelo app:

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

Suponha que há uma média de 10 chats atualizados sempre que o usuário verifica o aplicativo. Essa consulta envolve apenas 10 leituras de documentos.

Ler mensagens em um chat

Os usuários clicam nos tópicos de chat na tela inicial para ver as mensagens recentes, carregando as 50 mensagens mais recentes no carregamento inicial.

Suponha que o usuário típico execute essa ação cinco vezes por dia (uma para cada vez que abrir a tela inicial), levando a um total de 250 leituras por usuário a cada dia. Também podemos limitar nossa consulta a novas mensagens desde o último tempo de busca:

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

Suponha que um usuário receba cerca de 30 mensagens por dia em todos os chats. Como você limitou a consulta para buscar novas mensagens, isso se traduz em apenas 30 mensagens recuperadas/dia.

Enviar uma mensagem para um chat

Os usuários podem enviar mensagens para outros participantes assim que estiverem em um chat. Suponha que um usuário ativo envie cerca de 10 mensagens por dia.

Cada mensagem enviada resultará em duas gravações de documentos: uma na subcoleção de messages do chat e outra no documento pai do chat para atualizar o carimbo de data/hora lastUpdated e outros metadados.

Observe que o custo de ler essas mensagens foi contabilizado nas outras viagens, portanto, os totais abaixo consideram apenas esse custo de gravação.

Uso faturado nas tarefas de administrador

Como proprietário ou administrador do aplicativo, você provavelmente quer gerar relatórios com base nos dados dele. Por exemplo, é possível manter uma contagem diária do número de mensagens enviadas pelos usuários. Você pode fazer isso com uma agregação count() do grupo de coleções messages.

Para consultas de agregação, como count(), cobramos 1 leitura de documento para cada lote de até 1.000 entradas de índice que aparecem na consulta. A execução dessa agregação diariamente adiciona as seguintes cobranças mensais:

Pequeno
(50 mil instalações)

Para 50 mil instalações de aplicativo (5 mil usuários ativos por dia): US$ 0,0009/mês

5.000 usuários ativos * 10 novas mensagens por usuário = 50.000 novos documentos de mensagem por dia

50.000 documentos contados / 1.000 correspondências de índice por cobrança de leitura = 50 leituras

50 leituras por dia * 30 dias = 1.500 leituras por mês

1.500 leituras por mês * 0,06/100.000 leituras = US$ 0,0009 por mês

Médio
(1 milhão de instalações)

Para 1 milhão de instalações de aplicativo (100 mil usuários ativos por dia): US$ 0,018/mês

100.000 usuários ativos * 10 novas mensagens por usuário = 1.000.000 novos documentos de mensagem por dia

1.000.000 documentos contados / 1.000 correspondências de índice por cobrança de leitura = 1.000 leituras

1.000 leituras por dia * 30 dias = 30.000 leituras por mês

30.000 leituras por mês * 0,06/100.000 preço de leitura = US$ 0,018 por mês

Grande
(10 milhões de instalações)

Para 10 milhões de instalações de aplicativo (1 milhão de usuários ativos por dia): US$ 0,18

1.000.000 de usuários ativos * 10 novas mensagens por usuário = 10.000.000 de novos documentos de mensagem por dia

10.000.000 documentos contados / 1.000 correspondências de índice por cobrança de leitura = 10.000 leituras

10.000 leituras por dia * 30 dias = 300.000 leituras por mês

300.000 leituras por mês * 0,06/100.000 leituras = US$ 0,18 por mês

Benefícios incluídos: serviços sem custos financeiros para seu app

Embora as operações, o armazenamento e a largura de banda do Cloud Firestore sejam considerados como uso faturável, você também recebe vários outros benefícios sem custos adicionais. Considere os seguintes serviços sem custos ao comparar o Cloud Firestore com outras opções de banco de dados:

  • Acesso direto ao cliente: o Cloud Firestore é acessado diretamente no seu código de cliente usando nossos SDKs nativos. Isso significa que você não precisa criar e executar um servidor de API para conectar seus clientes móveis ao banco de dados.
  • Balanceamento de carga: como o Cloud Firestore é dimensionado automaticamente para suportar o tráfego para seu banco de dados, você não precisa executar um balanceador de carga.
  • Tempo de atividade do servidor: os bancos de dados do Cloud Firestore operam nos servidores do Google Cloud, oferecendo mais de 99% de tempo de atividade mensal.
  • Autenticação: autentique um número ilimitado de usuários de maneira simples e segura com o Firebase Authentication. O Firebase Authentication é integrado diretamente ao Cloud Firestore para que você não precise executar seu próprio serviço de autenticação.
  • Notificações push: envie mensagens e notificações com o Cloud Messaging.
  • Outros produtos do Firebase: integre outros produtos do Firebase sem custos financeiros, incluindo Teste A/B, Analytics, Crashlytics, Monitoramento de desempenho, e Configuração remota. Saiba mais sobre outros produtos e preços do Firebase.