Preços do Firestore
Este documento traz detalhes sobre os preços do Firestore.
Se você não paga em dólar americano, valem os preços na sua moeda local listados na página SKUs do Cloud Platform.
Visão geral de preços
Quando você usa o Firestore, os seguintes itens são cobrados:
- O número de documentos lidos, gravados e excluídos.
- O número de entradas de índice lidas para satisfazer uma consulta. Confira mais detalhes sobre leituras de índice.
- A quantidade de armazenamento utilizada pelo seu banco de dados, incluindo a sobrecarga de metadados e índices.
- A quantidade de largura de banda de rede que você usa.
O uso de armazenamento e largura de banda é calculado em gibibytes (GiB), sendo que 1 GiB = 230 bytes. Todas as cobranças se acumulam diariamente.
Nas seções a seguir, você vê detalhes sobre a cobrança pelo uso do Firestore.
Cota gratuita
O Firestore oferece uma cota sem custo financeiro para você começar a usar
o banco de dados (default)
. Os montantes das cotas gratuitas estão listados abaixo.
Se você precisar de mais cota, ative o faturamento do projeto do Google Cloud.
As cotas são aplicadas diariamente e redefinidas aproximadamente à meia-noite do Horário do Pacífico.
Somente o banco de dados (default)
se qualifica para a cota sem custos financeiros.
Nível sem custos | Cota |
---|---|
Dados armazenados | 1 GiB |
Leituras de documento | 50.000 por dia |
Gravações de documento | 20.000 por dia |
Exclusões de documento | 20.000 por dia |
Transferência de dados de saída | 10 GiB por mês |
As operações e os recursos a seguir não incluem o uso sem custo financeiro. Ative o faturamento para usar estes recursos:
- Uso de bancos de dados nomeados (não padrão)
- Exclusões TTL
- Dados da PITR
- Dados em backup
- Restaurar operações
Para mais informações sobre como esses recursos são cobrados, consulte Preços de armazenamento.
Preços por local
Na tabela a seguir, estão listados os preços de leituras, gravações, exclusões e armazenamento para cada local do Cloud Firestore:
Se você não paga em dólar americano, valem os preços na sua moeda local listados na página SKUs do Cloud Platform.
Nenhuma cota sem custos financeiros para os bancos de dados nomeados
Para criar um banco de dados nomeado (não padrão), você precisa ativar o faturamento.
Não há custo extra para criar ou excluir os bancos de dados nomeados, mas eles não se qualificam para a cota sem custos financeiros. Em vez disso, você será cobrado pelo uso desses bancos de dados nomeados.
Leituras, gravações e exclusões
Você é cobrado por documentos e entradas de índice lidas para satisfazer uma consulta. Você é cobrado por cada gravação e exclusão de documento realizada.
As cobranças por gravações e exclusões são diretas. Com relação a gravações, cada operação set
ou
update
conta como uma única gravação.
As cobranças por operações de leitura têm algumas nuances que você precisa ter em mente. As seções a seguir explicam essas nuances em detalhes.
Leituras de entrada de índice
É cobrada uma operação de leitura para cada lote de até 1.000 entradas de índice lidas por uma consulta, exceto em:
Para consultas de pesquisa de vetor de vizinho mais próximo, você paga uma operação de leitura para cada lote de até 100 entradas de índice de vetor de kNN lidas pela consulta.
Por exemplo, se a consulta de pesquisa de vetor a seguir com
limit: 5
retorna 5 documentos e lê 1.550 entradas de índice de vetor de kNN, serão cobradas 5 operações de leitura para os documentos retornados e 16 de leitura para as entradas de índice:// Requires single-field vector index const vectorQuery: VectorQuery = db.collection('cities').findNearest('embedding_field', FieldValue.vector([3.0, 1.0, 2.0]), { limit: 5, distanceMeasure: 'EUCLIDEAN' });
As consultas que têm até um campo de intervalo não são cobradas por leituras de entradas de índice.
Por exemplo, a consulta a seguir contém um campo de igualdade (
age
) e um intervalo (start_date
) e não é cobrada por leituras de entradas de índice:db.collection("employees").whereEqualTo("age", 35) .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
A consulta a seguir contém dois campos de intervalo (
age
estart_date
) e é cobrada por leituras de entradas de índice:db.collection("employees").whereGreaterThanOrEqualTo("age", 35) .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
Um campo que aparece na ordem por cláusula é considerado um campo de intervalo quando há pelo menos um outro campo de intervalo na consulta. Portanto, a consulta a seguir contém dois campos de intervalo (
age
estart_date
) e é cobrada por leituras de entradas de índice:db.collection("employees").whereGreaterThanOrEqualTo("age", 35) .orderBy("start_date")
O campo
__name__
é sempre considerado um campo de intervalo, mesmo que seja apenas usado em um filtro de igualdade. Portanto, a consulta a seguir contém dois intervalos (age
e__name__
) e é cobrada por leituras de entradas de índice:db.collection("employees").whereIn("__name__", Arrays.asList("/employees/Alice", "/employees/Bob")) .orderBy("age")
Consultas de agregação
Para consultas de agregação
como count()
, sum()
e avg()
,
as entradas de índice lidas pela consulta serão cobradas como
descrito acima. Caso nenhuma entrada seja encontrada na consulta,
haverá uma cobrança mínima de 1 leitura de documento.
Por exemplo, as operações count()
com 0 a 1.000 entradas de índice
são faturadas como 1 leitura de documento. Para uma operação count()
que tiver 1.500
entradas de índice, serão cobradas 2 leituras de documentos.
Para saber mais sobre os índices usados e as entradas de índice lidas, use o Query Explain.
Como detectar os resultados da consulta
O Firestore permite que você detecte os resultados de uma consulta e receba atualizações em tempo real quando os resultados dela forem alterados.
Quando você detecta os resultados de uma consulta, é cobrado por uma leitura sempre que um documento no conjunto de resultados é adicionado ou atualizado. Você também é cobrado por uma leitura quando um documento é removido do conjunto de resultados por ter sido alterado. Por outro lado, quando um documento for excluído, você não vai receber cobranças por uma leitura.
O faturamento de listeners nos SDKs para dispositivos móveis e Web também depende da ativação da permanência off-line:
Se a permanência off-line estiver ativada e o listener estiver desconectado por mais de 30 minutos (por exemplo, se o usuário ficar off-line), você será cobrado por documentos e leituras de entradas de índice como se você tivesse emitido uma nova consulta.
Se a permanência off-line estiver desativada, você será cobrado por documentos e as leituras de entradas de índice como se você tivesse emitido uma nova consulta sempre que desconecta e reconecta o listener.
Como gerenciar grandes conjuntos de resultados
O Firestore tem vários recursos para ajudar você a gerenciar consultas que retornam uma grande quantidade de resultados:
- Cursores, que permitem retomar uma consulta de longa duração.
- Tokens de página, que ajudam a paginar os resultados da consulta.
- Limites, que especificam quantos resultados serão recuperados.
- Deslocamentos, que permitem ignorar uma quantidade fixa de documentos.
Não há custos adicionais para usar cursores, tokens de página e limites. Na verdade, esses recursos ajudam você a economizar por meio da leitura apenas dos documentos realmente necessários.
No entanto, ao enviar uma consulta que inclui um deslocamento, será cobrada uma leitura para cada documento ignorado. Por exemplo, se a consulta usa um deslocamento de 10 e a consulta retorna um documento, você será cobrado por 11 leituras. Devido a esse custo adicional, recomendamos o uso de cursores em vez de deslocamentos sempre que possível.
Consultas que não sejam leituras de documentos
Para consultas que não sejam leituras de documentos, como uma solicitação de uma lista de IDs da coleção, você será cobrado por uma leitura de documento. Se a busca do conjunto completo de resultados exigir mais que uma solicitação, por exemplo, se você estiver usando paginação, você será cobrado uma vez por solicitação.
Cobrança mínima por consultas
Há uma cobrança mínima de uma leitura de documento para cada consulta realizada, mesmo que não retorne resultados.
Regras de Segurança do Firestore
Em bibliotecas de cliente para dispositivos móveis e Web, se as
Regras de segurança do Firestore usarem exists()
, get()
ou getAfter()
para ler
um ou mais documentos do seu banco de dados, você será cobrado por leituras extras
da seguinte maneira:
Você receberá cobrança por leituras necessárias para avaliar suas Regras de segurança do Firestore.
Por exemplo, se as regras se referirem a três documentos, mas o Firestore só precisar ler dois deles para avaliar suas regras, você será cobrado por duas leituras adicionais para os documentos dependentes.
Você só é cobrado por uma leitura por documento dependente, mesmo que suas regras façam referência a esse documento mais de uma vez.
Você será cobrado pela avaliação de regras apenas uma vez por solicitação.
Como resultado, pode custar menos ler vários documentos do que ler documentos individualmente, porque a leitura de vários documentos requer menos solicitações.
Ao detectar os resultados de uma consulta, você será cobrado pela avaliação de regras em todos os casos a seguir:
- Ao emitir a consulta.
- Sempre que os resultados da consulta forem atualizados.
- Sempre que o dispositivo do usuário ficar off-line e voltar a ficar on-line.
- Sempre que você atualizar suas regras.
- Sempre que atualizar os documentos dependentes em suas regras.
Tamanho do armazenamento do banco de dados
Você receberá cobrança pelo montante de dados armazenados no Firestore, incluindo a sobrecarga do armazenamento. O montante da sobrecarga inclui metadados, índices automáticos e índices compostos.
Cada documento armazenado no Firestore requer os seguintes metadados:
- O ID do documento, incluindo o ID da coleção e o nome do documento.
- O nome e o valor de cada campo. Como o Firestore não depende de um esquema, o nome de cada campo em um documento precisa ser armazenado com o valor do campo.
- Todos os índices de campo único e compostos que se referem ao documento. Cada entrada de índice contém o ID da coleção, o número de valores de campo, dependendo da definição do índice, e o nome do documento.
Os custos de armazenamento são calculados em GB/mês e calculados diariamente. O Firestore mede o tamanho do banco de dados diariamente. Durante o período de um mês, a média desses pontos de amostra é feita para calcular o tamanho do armazenamento do banco de dados. Esse valor médio é multiplicado pelo preço unitário de armazenamento (GB/mês).
Saiba como o armazenamento no Firestore é calculado em Cálculos de tamanho de armazenamento.
Dados da PITR
Se você ativar a PITR, vai ser cobrado pelo armazenamento de dados PITR. A maioria dos clientes vai perceber que o custo total do armazenamento de dados PiTR é semelhante ao custo de armazenamento do banco de dados.
Os custos de armazenamento da PITR são calculados em GB/mês diariamente. O Firestore mede o tamanho do banco de dados diariamente. Durante o período de um mês, a média desses pontos de amostra é feita para calcular o tamanho do armazenamento do banco de dados. Esse valor médio é multiplicado pelo preço unitário de PITR (GB/mês).
Por exemplo, se o tamanho médio do seu banco de dados durante um mês for de 1 GiB e a PITR estiver ativada para o mês inteiro, o tamanho dos dados da PITR faturável também será de 1 GiB.
Faturamento mínimo: você pode receber uma cobrança de até 1 dia no custo de armazenamento da PITR mesmo se desativá-la dentro de um dia após a ativação.
Dados de backup e operações de restauração
Se você ativar os backups, será cobrado pelo armazenamento dos backups do banco de dados. O tamanho do armazenamento de um backup é igual ao tamanho do armazenamento do banco de dados quando o backup foi feito.
Os custos de armazenamento para backups são em GiB por mês. Durante o período de um mês, o número de dias em que cada backup é retido, a média ao longo do mês, também é calculado. O custo de cada backup é calculado com base no tamanho do armazenamento do backup multiplicado pela proporção do mês em que o backup é retido e multiplicado pelo preço unitário. Os limites do dia são definidos pelo fuso horário Estados Unidos/Los_Angeles para fins de faturamento.
Quando você executa uma operação de restauração, o Firestore mede o tamanho do backup para a operação de restauração. O tamanho do backup é multiplicado pelo preço unitário das operações de restauração (GiB).
Query Explain
O uso do Firestore Query Explain gera custos.
Quando uma consulta é explicada com a opção padrão, nenhuma operação de leitura de índice é realizada. Independentemente da complexidade da consulta, uma operação de leitura é cobrada.
Quando uma consulta é explicada com a opção de análise, operações de índice e leitura são executadas, portanto, a consulta é cobrada normalmente. Não há custo adicional pela atividade de explicação e análise, somente a cobrança normal para a consulta que está sendo executada.
Largura de banda da rede
Você é cobrado pela largura de banda da rede usada pelas solicitações do Firestore, conforme mostrado nas seções a seguir. O custo de largura de banda da rede referente a uma solicitação do Firestore depende do tamanho e do destino da resposta e também do local do banco de dados do Firestore.
O Firestore calcula o tamanho da resposta com base em um formato de mensagem serializado. A sobrecarga de protocolo, como a de SSL, não conta como uso da largura de banda da rede. Isso também se aplica às solicitações negadas pelas regras de segurança do Firestore.
Para saber a quantidade de largura de banda da rede que você usou, utilize o console do Google Cloud para exportar os dados de faturamento para um arquivo.
Preços gerais de rede
Para solicitações originadas no Google Cloud Platform, por exemplo, de um aplicativo em execução no Google Compute Engine, você será cobrado da seguinte maneira:
Tipo de tráfego | Preço |
---|---|
Transferência de dados de entrada | Sem custo financeiro |
Transferência de dados em uma região | Sem custo financeiro |
Transferência de dados entre regiões na mesma multirregião | Sem custo financeiro |
Transferência de dados entre regiões nos EUA (por GiB) | US$ 0,01 (primeiros 10 GiB sem custos por mês.) |
Transferência de dados entre regiões, não incluindo o tráfego entre as regiões dos EUA | Taxas de transferência de dados de saída da Internet do Google Cloud Platform |
Se você não paga em dólar americano, valem os preços na sua moeda local listados na página SKUs do Cloud Platform.
Taxas de transferência de dados na Internet
A Transferência de dados na Internet será cobrada pela seguinte forma:
- Solicitações do Google Cloud entre regiões, não incluindo o tráfego entre as regiões dos EUA
- Solicitações de fora do Google Cloud, por exemplo, do dispositivo móvel de um usuário.
Se você não paga em dólar americano, valem os preços na sua moeda local listados na página SKUs do Cloud Platform.
Como monitorar o uso
Para saber como monitorar o uso do Firestore, consulte Como monitorar o uso.
Como gerenciar os gastos
Para gerenciar seus gastos, use alertas e orçamentos mensais.
Orçamentos e alertas do Google Cloud
O Google Cloud permite definir um orçamento mensal para todos os serviços. O orçamento mensal permite monitorar os custos gerais do Google Cloud, incluindo aqueles associados à largura de banda de rede do Firestore. Depois de definir um orçamento, crie alertas para receber notificações por e-mail à medida que seus custos forem se aproximando do limite.
Siga estas instruções para definir um orçamento mensal e criar alertas no console do Google Cloud.
Exemplo de preço
Para ver como os custos de faturamento do Firestore são acumulados em um app de amostra real, consulte o Exemplo de faturamento do Cloud Firestore.
A seguir
- Leia a documentação do Firestore.
- Primeiros passos com o Firestore.
- Use a calculadora de preços.
- Saiba mais sobre soluções e casos de uso do Firestore.