Testing og feilsøking av sikkerhetsregler
Få tillit til reglene i Realtime Database ved å simulere forespørsler, bruke Rules Playground, skrive automatiserte tester med emulatoren og tolke meldinger om avslag.
Testing og feilsøking av sikkerhetsregler er en gratis leksjon i Apper med Firebase Auth og Realtime Database på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Apper med Firebase Auth og Realtime Database, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Apper med Firebase Auth og Realtime Database inneholder totalt 4 leksjoner.
Hvorfor reglene bør testes
Security Rules er det eneste som står mellom dataene Deres og det åpne internett. Én enkelt feil kan eksponere private data eller blokkere legitime brukere.
Det er like viktig å teste regler som å teste kode, og Firebase gir Dem flere verktøy for dette.
Regellekeplassen
Firebase-konsollen inneholder en Rules Playground der De kan simulere én enkelt lese- eller skriveoperasjon uten å påvirke virkelige data.
- Velg lesing eller skriving
- Angi en bane og en autentiseringstilstand
- Se umiddelbart om operasjonen er tillatt eller avvist
Simulere autentiseringstilstand
I simulatoren kan De kjøre som en ikke-autentisert bruker eller oppgi en falsk auth.uid og egendefinerte claims. Slik kontrollerer De at brukerbasert tilgangskontroll fungerer riktig.
Tolke en avvisning
Når en forespørsel avvises, fremhever simulatoren den nøyaktige regelen som evaluerte til usann. Bruk dette til å finne ut hvorfor en legitim forespørsel blokkeres.
Den lokale emulatoren
For repeterbar, automatisert testing bruker De Firebase Local Emulator Suite. Den kjører Realtime Database og reglene til databasen fullstendig på maskinen Deres, uten kostnader i skyen.
firebase emulators:start --only databaseSkrive en reg test
Biblioteket @firebase/rules-unit-testing lar Dem bekrefte at operasjoner lykkes eller mislykkes. Dette er gullstandarden for tillit til reglene.
import { assertSucceeds, assertFails } from '@firebase/rules-unit-testing';
await assertSucceeds(authedDb.ref('users/alice').set({ name: 'Alice' }));
await assertFails(authedDb.ref('users/bob').set({ name: 'hax' }));Test begge utfall
Gode reg tester kontrollerer begge utfall:
- Autoriserte brukere kan utføre tillatte handlinger (ingen falske avvisninger)
- Uautoriserte brukere kan ikke utføre forbudte handlinger (ingen sikkerhetshull)
Hvis De bare tester den vellykkede stien, skjules farlige hull.
Teste valideringsregler
I tillegg til tilgang bør De teste .validate-reglene: Bekreft at feilformatert data avvises, og at data i riktig format godtas.
await assertFails(db.ref('age').set('not-a-number'));
await assertSucceeds(db.ref('age').set(30));Vanlige feil i regler
Se opp for disse vanlige feilene:
- Regler arves: En sann
.read-regel høyere opp overstyrer underordnede regler - Å glemme at lese- og skriverettigheter er uavhengige
- Å anta at
authikke er null uten å kontrollere det
Feilsøking med newData
Inne i skriver regler representerer newData det som skrivingen vil resultere i, mens data er den gjeldende verdien. Når du logger begrunnelsen for disse i testtilfeller, blir mange forvirrende avslag lettere å forstå.
{
"posts": {
"$id": {
".write": "!data.exists() || data.child('owner').val() === auth.uid"
}
}
}CI-integrasjon
Kjør emulatorbaserte regeltester i kontinuerlig integrasjon, slik at en risikabel regelendring oppdages før den når produksjon. På denne måten blir sikkerhet en garanti som testes mot regresjoner.
Hurtigsjekk
Test forståelsen din av reg testing.
Oppsummering
Du kan nå validere regler med trygghet.
- Bruk Rules Playground til raske manuelle kontroller
- Bruk Local Emulator til kjøringer som kan gjentas
- Skriv tester med
assertSucceeds/assertFails - Dekk både tilgang og validering, i begge retninger
- Kjør regeltester i CI
Lær deg Apper med Firebase Auth og Realtime Database med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 11
- Leksjoner
- 44
Ofte stilte spørsmål
Er leksjonen «Testing og feilsøking av sikkerhetsregler» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Apper med Firebase Auth og Realtime Database, inkludert «Testing og feilsøking av sikkerhetsregler», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Apper med Firebase Auth og Realtime Database inneholder totalt 4 leksjoner.
Hva lærer jeg i «Testing og feilsøking av sikkerhetsregler»?
Få tillit til reglene i Realtime Database ved å simulere forespørsler, bruke Rules Playground, skrive automatiserte tester med emulatoren og tolke meldinger om avslag. Du øver på Apper med Firebase Auth og Realtime Database med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Apper med Firebase Auth og Realtime Database?
Ingen tidligere erfaring er nødvendig. Apper med Firebase Auth og Realtime Database på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Testing og feilsøking av sikkerhetsregler»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Apper med Firebase Auth og Realtime Database-leksjonen?
Ja. Alle Apper med Firebase Auth og Realtime Database-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Forstå syntaksen i sikkerhetsregler
- Brukerbasert tilgangskontroll
- Validering av data med regler
- Testing og feilsøking av sikkerhetsregler