Excelente análise — está bem acima da média e, no geral, os números fazem sentido 👍 Dito isso, há algumas inconsistências, premissas otimistas demais e pontos que eu ajustaria para evitar surpresas quando sair do free tier. Vou separar em ✔️ corretos, ⚠️ atenção, e ❌ inconsistências reais.


✔️ O que está sólido e bem modelado

1. Visão sistêmica de custos

  • A decomposição por perfil de usuário (light / regular / heavy) é correta.
  • Os drivers principais (Maps, Firestore writes, Functions) estão bem identificados.
  • O uso de cache + throttling + flags é exatamente o que mantém Firebase barato.

👉 Isso mostra maturidade de arquitetura.


2. Firebase Auth

✔️ Correto

  • Email/password + Google OAuth são realmente $0.
  • Sem SMS → zero risco aqui.

3. Cloud Functions

✔️ Correto em escala pequena e média

  • 2M invocações é bastante coisa.
  • Funções curtas (~100–200ms) com 256MB são baratas.

⚠️ Apenas um detalhe:

Cold start não impacta custo diretamente, mas pode aumentar duração → GB-seconds. Não é um problema agora, só monitorar.


4. Remote Config, Hosting, AdMob

✔️ Correto

  • Remote Config é praticamente ilimitado.
  • Hosting só vira custo com tráfego alto.
  • AdMob corretamente tratado como receita, não custo.

⚠️ Pontos que estão certos, mas otimistas

Aqui não estão “errados”, mas assumem uso perfeito e disciplinado.


⚠️ Firestore — escritas durante execução de rota

Problema:

Você assume:

“Atualizações de posição a cada 30s por 30min = ~60 writes”

Na prática:

  • Motorista pode:

  • Pausar / retomar rota

  • Ficar offline / online
  • Gerar writes duplicados por retry
  • App em background pode disparar eventos extras

📌 Risco real: +20–40% de writes sem perceber.

✅ Mitigação (já citada, mas eu elevaria prioridade):

  • Throttling por distância (>50–100m) além de tempo
  • Debounce defensivo no client
  • Write only if distanceFromLastPoint > X

👉 Eu colocaria um buffer mental de +30% nas writes.


⚠️ Firestore Free Tier “por usuário”

O documento faz algo comum, mas perigoso:

“Heavy user custa X → suporta Y heavy users”

📌 O free tier é global por projeto, não linear por usuário.

Se você tiver:

  • 200 heavy users concentrados nos mesmos horários
  • Muitos motoristas rodando de manhã e à tarde

Você pode:

  • Estourar writes diárias (20k/day) antes do mês acabar

👉 O modelo mensal está correto, 👉 Mas o limite diário é o verdadeiro gargalo.

🔎 Exemplo:

  • 200 heavy users × 60 writes/rota × 2 rotas/dia = 24.000 writes/dia

Isso estoura o free tier mesmo que o mês ainda esteja ok.


⚠️ Google Maps Directions API

A conta está correta se o cache funcionar perfeitamente.

Mas:

  • Mudança mínima de rota
  • Ajuste de waypoint
  • Alteração manual do motorista

➡️ tudo isso invalida cache.

📌 Eu consideraria:

  • Cache efetivo mais conservador: 60%, não 70–80%.

Ainda é bom, só não tão perfeito quanto o texto sugere.


❌ Inconsistências reais (essas eu ajustaria)

❌ 1. Batch no Firestore “conta como 1 escrita”

dart await batch.commit(); // Conta como 1 escrita

🚨 Isso está errado.

No Firestore:

  • Cada documento em um batch conta como uma escrita
  • O batch só reduz:

  • Latência

  • Risco de partial failure
  • Não reduz custo

📌 Correção no documento:

Batch melhora performance e atomicidade, não custo direto.


❌ 2. Realtime Database “mais barato para escritas frequentes”

Isso é meia verdade.

✔️ Vantagem:

  • Melhor para streaming
  • Latência menor
  • Modelo push eficiente

❌ Mas:

  • Custo é por GB transferido, não por operação
  • Payloads grandes ou frequentes podem sair mais caros
  • Regras menos expressivas que Firestore

📌 Correção conceitual:

Realtime DB é melhor para telemetria volátil, não necessariamente mais barato sempre.


❌ 3. Storage: downloads legais “alto”

“cada usuário baixa termos na primeira sessão”

Na prática:

  • Muitos usuários não baixam PDF
  • Termos costumam ser exibidos inline (Hosting ou WebView)

📌 Storage download provavelmente está superestimado, não subestimado.


❌ 4. Projeção anual “$45/ano”

Isso só se mantém se:

  • Crescimento for suave
  • Heavy users não dominarem a base
  • Não houver bug de loop de writes

📌 Eu colocaria:

  • Orçamento psicológico mínimo: $10–20/mês a partir de ~1.500 usuários
  • Mesmo que o cálculo diga menos

Ajustes que eu faria no documento

🔧 Ajustes rápidos

  1. Corrigir trecho do batch
  2. Adicionar alerta explícito:

“Free tier é limitado por dia, não só por mês” 3. Reduzir expectativa de cache do Maps para 60% 4. Colocar buffer de +30% nas writes de execução


Veredito final 🎯

Minha avaliação honesta:

Aspecto Nota
Arquitetura ⭐⭐⭐⭐⭐
Modelo de custos ⭐⭐⭐⭐☆
Realismo operacional ⭐⭐⭐⭐☆
Risco oculto ⭐⭐⭐☆☆

👉 É viável, bem pensado e defensável 👉 Não está “vendendo ilusão” 👉 Só precisa ajustar algumas afirmações absolutas

Se quiser, posso:

  • Revisar isso como documento oficial para investidor
  • Transformar em checklist técnico de monitoramento
  • Simular cenário de bug (loop de writes) e impacto real

Você está no caminho certo — isso é projeto de gente experiente, não MVP amador.