Skip to main content

TDD — Comando Firestore (debug)

Status

Implementado

Contexto

Executa comando arbitrário contra o Firestore para debug (leitura/escrita). Acessível via Home → Ajuda → Debug (campo de comando).

Contratos

Backend: platformDebugFirestoreHttp (POST)

  • Headers: x-debug-token (DEBUG_PLATFORM_TOKEN configurado no backend)
  • Payload: { op: "read"|"readTree"|"write", path, documentId?, data?, mode?: "merge"|"overwrite", limit?, maxDepth? }
  • Response: { ok, data: { type, path, tree|document|documents|mode }, error?, debug }

Frontend: ExecutePlatformDebugFirestoreCommandUseCase

Interface de Usuário (UI)

Painel de debug (popup Ajuda, desbloqueado). Coluna direita (ou abaixo em mobile).

Componentes:

  • Comandos — título da seção
  • Campo de entrada — TextField multiline (3–5 linhas); hint com exemplos JSON e CLI ({"op":"read","path":"..."} ou /db read --path ...)
  • Limpar — limpa o campo de comando
  • Injetar papéis: — botões "1. Catálogo (ministério)" e "2. Visibilidade (igreja)" que preenchem o campo com comandos pré-definidos
  • Executar comando — botão principal; mostra loading durante execução
  • Atalhos 0–9 — grade de botões; 0 = aplicar estrutura, 1 = snapshot, 2–9 reservados
  • Resultado da execução é gravado na área "Debug out" (coluna esquerda)

Observação: Aceita JSON ou sintaxe CLI (/db read|tree|write --path ... [--data ...]). Para write, --data é obrigatório com objeto JSON.

Fluxo

  1. Usuário digita comando (JSON ou CLI) e clica em "Executar comando"
  2. Frontend envia para platformDebugFirestoreHttp
  3. Backend executa e retorna resultado
  4. Resultado exibido na área "Debug out"

Código de referência

  • frontend/lib/application/use_cases/execute_platform_debug_firestore_command.dart
  • backend/functions/src/interfaces/http/platform-debug-firestore-http-controller.ts