Firebase security rules om te kopiëren voor gegevens van alleen de eigenaar, publiek lezen, adminrollen en validatie in Firestore, Storage en Realtime Database, plus hoe u ze test.
Firebase security rules bepalen wie elk stukje gegevens in uw app mag lezen en schrijven. Begin elk Firestore-bestand met rules_version = '2', geef alleen toegang als request.auth is ingesteld, vergelijk request.auth.uid met de eigenaar van het document en controleer binnenkomende velden met request.resource.data. Test met de emulator voordat u deployt.
De variabelen die u per product het meest gebruikt
Als uw app, webwinkel of ledenomgeving gegevens in Firebase opslaat, zijn de rules het enige wat tussen de gegevens van uw klanten staat en iedereen die de openbare config van uw project heeft. De recepten hieronder dekken de gevallen die de meeste kleine apps nodig hebben. Filter op product, kopieer er een en pas de collectienamen aan uw eigen namen aan.
Een van de twee startkeuzes bij het aanmaken van een database. Firebase noemt test mode goed om te beginnen, maar zegt dat iedereen dan uw gegevens kan lezen en overschrijven. Production mode weigert alle lees- en schrijfacties van mobiele en webclients totdat u rules schrijft.
Zoek naar een voorwaarde die request.time vergelijkt met een vaste datum, zoals request.time < timestamp.date(2026, 11, 1). Zodra die datum voorbij is, mislukt elk verzoek. Vervang het door echte rules in plaats van de datum op te schuiven.
Firebase documenteert een limiet van 10 documenttoegangsaanroepen voor verzoeken en queries op één document, en 20 voor lezingen van meerdere documenten, transacties en batch-schrijfacties. Gaat u daaroverheen, dan volgt een permission denied-fout.
Nee. Rules beschermen verzoeken van mobiele en webclients. Firebase stelt dat de serverclientbibliotheken alle Cloud Firestore Security Rules omzeilen, dus controleer invoer in uw servercode apart.
Start de emulator met firebase emulators:start --only firestore en schrijf dan tests met het pakket @firebase/rules-unit-testing, met assertSucceeds en assertFails voor toegestane en geblokkeerde acties.
Deze patronen komen voor in starterprojecten en tutorials. Elk ervan laat gegevens open.
Riskante rules en veiligere vervangingen
Draai de Firestore-emulator en controleer dan dat de eigenaar kan schrijven en een vreemde niet.
Gebruikt een demo-project-id zodat er niets een live database bereikt. Voer het uit terwijl firebase emulators:start --only firestore draait.
Elke gebruiker leest en bewerkt alleen het document waarvan de id gelijk is aan zijn gebruikers-id.
Iedereen kan de productcatalogus lezen; alleen gebruikers met role admin in hun profiel kunnen hem wijzigen.
Een klant kan alleen een bestelling voor zichzelf aanmaken, met een positief totaal en een bekende status, en kan die daarna niet bewerken.
Profielwijzigingen zijn alleen toegestaan als het role-veld precies blijft zoals het was.
Bestanden staan in de map van elke gebruiker; uploads moeten afbeeldingen kleiner dan 5MB zijn, en iedereen die is ingelogd kan ze bekijken.
Realtime Database-rules zijn JSON. $uid vangt de sleutel op; newData is de waarde die wordt geschreven.
Toon recepten voor
Alle producten
Cloud Firestore
Cloud Storage
Realtime Database
{n} recepten getoond
Gratis beginnen · Geen creditcard nodig