All checks
Securitycriticalfirebase-rtdb-public-readchecked on every page we scan

Firebase Realtime Database is publicly readable

Your Realtime Database answers read requests from anyone on the internet, with no authentication.

Why it matters

Your Realtime Database answers read requests from anyone on the internet, with no authentication. Every record it holds — including user data — can be downloaded in bulk by anyone who finds the URL, and the URL is published in your own client-side JavaScript. This is a database-wide data breach that requires no exploit, only a request.

How ShipReady detects it

Firebase Realtime Database exposure — the Firebase counterpart to the Supabase RLS check, covering the other dominant BaaS in the AI-built-app ecosystem. Uses Firebase's own documented, unauthenticated REST endpoint (.json?shallow=true, which returns only top-level KEY NAMES, not data) so the probe stays passive and minimal. A real unauthenticated read is unambiguous evidence of an open-rules misconfiguration. Firestore is intentionally out of scope for V1 (it requires guessed collection names to probe deterministically) — this check covers the Realtime Database only.

Detection is deterministic. ShipReady reports this only when it observes the condition directly, and prefers to miss a real problem over inventing one. Rule version 1.1.0.

How to fix it

This is the prompt ShipReady puts in your report — written to be pasted straight into Cursor, Claude Code, or whichever assistant built the app.

Your Firebase Realtime Database can be read by anyone without authentication (its security rules allow public reads). Tighten the database rules so reads and writes require authentication and authorization — never ship rules like {".read": true} to production.

Frequently asked questions

What does "Firebase Realtime Database is publicly readable" mean?
Your Realtime Database answers read requests from anyone on the internet, with no authentication.
How serious is it?
ShipReady rates this critical. Fix before launch. On its own, this is enough to compromise the application.
How do I fix it?
Paste the fix prompt on this page into Cursor, Claude Code or your AI editor. It is the same prompt ShipReady puts in your report.
Can I check my own site?
Yes — ShipReady scans up to ten pages of any public site for free and reports this alongside every other check. The free report lists every issue it finds and shows full evidence and a fix prompt for the critical and high-severity ones; medium and low findings are counted and unlock on Pro.

Related checks

Run this check on your site

ShipReady checks this and 193 other things across up to ten pages of your site, with an AI-ready fix for each. Free, no signup.