← Guias
6 min de leitura

Regras do Firebase abertas: como saber e como fechar sem quebrar o app

"allow read, write: if true" ou o modo de teste esquecido deixam qualquer pessoa ler e apagar o seu Firestore. Como conferir e as regras certas.

No Firebase, a configuração que vai no site (apiKey, projectId) é pública por desenho — ela só identifica o projeto. Quem protege os dados são as regras de segurança: firestore.rules, as regras do Realtime Database e as do Storage. Regra aberta = qualquer pessoa usa a configuração do seu site e mexe no banco direto, sem passar pelo app.

Os dois jeitos mais comuns de ficar aberto

1. A regra que libera tudo, colocada para sumir com um erro de permissão:

match /{document=**} {
  allow read, write: if true;
}

2. O "modo de teste" do console, que libera tudo até uma data. Enquanto a data não chega, o banco está aberto; quando chega, o app para de funcionar — e a tentação é trocar por if true.

allow read, write: if request.time < timestamp.date(2026, 12, 1);

Como conferir

  • No console do Firebase: Firestore Database → Regras. Procure if true, if request.time < e match /{document=**}.
  • Realtime Database → Regras: ".read": true ou ".write": true na raiz abrem tudo.
  • Storage → Regras: escrita sem condição deixa qualquer um subir arquivo no seu bucket (e na sua conta).
  • Use o Rules Playground do console para simular um usuário comum lendo o documento de outro.

Regras que costumam servir

Cada usuário só mexe no que é dele:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /usuarios/{uid} {
      allow read, write: if request.auth != null && request.auth.uid == uid;
    }
    match /pedidos/{pedido} {
      allow read, update, delete: if request.auth != null
        && resource.data.dono == request.auth.uid;
      allow create: if request.auth != null
        && request.resource.data.dono == request.auth.uid;
    }
    match /produtos/{produto} {
      allow read: if true;   // catálogo público
      allow write: if false; // só o painel/admin, pelo servidor
    }
  }
}

request.auth != null sozinho não protege dado pessoal: qualquer pessoa cria uma conta e passa a ler tudo. Sempre compare com o dono do documento.

Dicas curtas de segurança para quem cria com IA: siga @npx_vibedefender no Instagram.