Skip to content
Commit 4b9e161a authored by Igor Matheus's avatar Igor Matheus
Browse files

Três índices faltando derrubaram três telas em produção



Avisos, palpites do jogo e ranking quebravam no projeto real com a suíte inteira
verde. O motivo é estrutural e vale mais que o defeito: o emulador do Firestore
não exige índice composto — ele responde qualquer consulta. Em produção a mesma
consulta falha com "The query requires an index".

Os 334 casos diziam a verdade sobre a regra e nada sobre a infraestrutura da
consulta, porque todos rodam no emulador de propósito. Rodar teste contra produção
seria pior.

O mais instrutivo dos três: o índice de palpites existia só no escopo de grupo,
declarado para a Function do sigilo. A consulta do app é quase idêntica e precisa
de outro, de coleção. Duas consultas parecidas, dois índices diferentes, e a
diferença não aparece em lugar nenhum do código.

A verificação virou script sem credencial: scripts/conferir-indices.py compara
cada consulta do app e das Functions com o firestore.indexes.json. Escrito depois
do defeito e testado contra ele — removendo os três índices, acusa os três.

Índices publicados no projeto real.

Co-Authored-By: default avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
parent 36d07787
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment