Skip to content

Check your Firebase security rules against 26 common mistakes

Paste your Firestore security rules, Firebase Storage rules or Realtime Database rules. The checker reads the text and shows which paths let anyone read or write.

Paste your rules

You can paste up to 48,000 characters in total across the three fields.

Confirm you are human

This keeps automated requests off the service.

Your rules are processed in memory on Cloudflare’s network and discarded after the answer. Nothing is stored.

Result

This is static analysis of pasted text. It cannot see custom claims, App Check, data shape or rules that were never deployed; the grade covers only what the 26 checks can read.

What this check cannot see

The checker reads only the pasted text. It cannot see custom claims, App Check, the shape of your data or rules that were never deployed, so a clean result does not mean the project is safe.

All 26 checks

CheckIdServiceSeverity
Anyone can write to Firestorefs-open-writeFirestoreCritical
Anyone can read from Firestorefs-open-readFirestoreMedium
A recursive wildcard match is openfs-recursive-wildcard-openFirestoreCritical
Test mode rules with an expiry datefs-test-mode-expiryFirestoreCritical
Any signed-in user can writefs-auth-only-writeFirestoreHigh
Any signed-in user can readfs-auth-only-readFirestoreMedium
Email trusted without email_verifiedfs-email-unverifiedFirestoreMedium
Role read from the request datafs-role-from-requestFirestoreHigh
A broad wildcard hides stricter rulesfs-wildcard-shadowFirestoreHigh
Users can write their own role (heuristic)fs-self-role-writeFirestoreHigh
Writes accept any fields (heuristic)fs-write-no-field-guardFirestoreMedium
read is not split into get and listfs-read-not-splitFirestoreInfo
No explicit default denyfs-no-default-denyFirestoreInfo
Firestore rules did not parsefs-parse-errorFirestoreInfo
Anyone can read Storage filesst-open-readStorageMedium
Anyone can write to Storagest-open-writeStorageCritical
The {allPaths=**} match is openst-recursive-wildcard-openStorageCritical
Any signed-in user can write to Storagest-auth-only-writeStorageHigh
Storage rules did not parsest-parse-errorStorageInfo
The whole database is readable by anyonedb-root-read-openRealtime DatabaseCritical
The whole database is writable by anyonedb-root-write-openRealtime DatabaseCritical
A node is readable by anyonedb-open-readRealtime DatabaseMedium
A node is writable by anyonedb-open-writeRealtime DatabaseHigh
A child rule is overridden by its parentdb-cascade-overrideRealtime DatabaseHigh
Any signed-in user can read or write the whole databasedb-auth-only-rootRealtime DatabaseHigh
Realtime Database rules did not parsedb-parse-errorRealtime DatabaseInfo

Questions

What does the Firebase rules checker look at?

It reads the Firebase security rules you paste for Firestore, Cloud Storage and the Realtime Database and looks for rules that let anyone read or write, rules that only require a signed-in user, trusted client input and similar patterns.

Is my rules text stored?

No. The rules are processed in memory on Cloudflare’s network and discarded once the answer is sent. Nothing is saved or logged with the text.

How much can I paste?

Up to 48,000 characters in total across the three fields. If your rules are longer, paste the part you want checked.

Why can a public read rule be fine?

Some data is meant to be public, such as a product catalog or blog posts. In Firestore and Storage the checker counts an unconditional read as a medium problem and takes 10 points, because it cannot know whether the data is private. If the data is public on purpose, you can accept that cost. At the root of the Realtime Database it rates an open read higher.

What are test mode rules?

When you create a Firestore database in test mode, the console writes a rule that allows everything until a date, using request.time. Until that date anyone can read and write; afterwards everything is denied and the app breaks. Replace it with real conditions before launch.

How do Realtime Database rules cascade?

In the Realtime Database a rule that grants access applies to everything below it, and a child cannot take it back. A stricter rule on a child under a permissive parent never applies, which is why the checker reports it.

What does the grade mean?

It summarises only what the checks can read in the pasted text: a score from 100 minus a penalty for each failed check, set by the most severe problem that check found, and any critical problem is an F. A medium item can also be a heuristic that asks you to check by hand, because the text alone cannot show whether it is a real problem. An A does not prove the project is secure, because custom claims, App Check and the data itself are out of reach.