Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen · Oppitunti

Datan validointi säännöillä

Käytätte tietoturvasääntöjä saapuvan datan validoimiseen, jotta se vastaa odotettuja muotoja ja haitalliset kirjoitukset estetään

Oppitunti 3/411 vaihetta

Datan validointi säännöillä on ilmainen Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-kurssilla on yhteensä 4 oppituntia.

Miksi tiedot pitää vahvistaa?

Tervetuloa oppitunnille 3! Tässä oppitunnissa opitte käyttämään Firebase Realtime Database Security Rules -sääntöjä saapuvien tietojen vahvistamiseen. Tämä on erittäin tärkeää, jotta voitte:

  • estää virheellisten tai haitallisten tietojen päätymisen tietokantaan
  • säilyttää sovelluksen tietojen eheyden ja yhdenmukaisuuden
  • varmistaa, että tiedot noudattavat odotettuja muotoja ja tyyppejä

Ajatelkaa tätä tietokantanne portsarina!

newData-muuttujan ja .validate()-säännön esittely

Kun tietoja kirjoitetaan tietokantaan, Firebase tarjoaa erityisen newData-olion. Tämä olio edustaa tietoja, jotka ollaan kirjoittamassa.

.validate()-säännön avulla määritetään ehdot, jotka newData-olion on täytettävä. Jos ehdot eivät täyty, kirjoitustoiminto hylätään.

Tässä on perusesimerkki:

{
  "rules": {
    "posts": {
      "$postId": {
        // Allow anyone authenticated to write
        ".write": "auth != null",
        // Validate that new posts must have 'title' and 'content'
        ".validate": "newData.hasChildren(['title', 'content'])"
      }
    }
  }
}

Tietotyyppien tarkistaminen

Yksi yleisimmistä vahvistuksista on tietotyypin tarkistaminen. Voitte varmistaa, että kentät ovat merkkijonoja, lukuja, totuusarvoja tai jopa null-arvoja.

Tämä auttaa estämään esimerkiksi tilanteen, jossa käyttäjä lähettää nimen (merkkijonon) sijaan luvun.

{
  "rules": {
    "users": {
      "$userId": {
        "name": { ".validate": "newData.isString()" },
        "age": { ".validate": "newData.isNumber()" },
        "isActive": { ".validate": "newData.isBoolean()" }
      }
    }
  }
}

Kenttien määrittäminen pakollisiksi

Joskus tietyt kentät ovat ehdottoman pakollisia. Voitte käyttää ehtoa newData.hasChildren(['field1', 'field2']) varmistaaksenne useiden kenttien olemassaolon tai käsitellä alisolmua suoraan sen olemassaolon tarkistamiseksi.

Jos pakollinen kenttä puuttuu, kirjoitus epäonnistuu.

{
  "rules": {
    "messages": {
      "$messageId": {
        ".validate": "newData.hasChildren(['senderId', 'text'])"
      }
    }
  }
}

Merkkijonojen pituuden hallinta

Tekstikenttien vähimmäis- tai enimmäispituutta on usein tarpeen rajoittaa. Tämä estää liian lyhyet tai liian pitkät syötteet.

Voitte käyttää merkkijonoarvon .length-ominaisuutta.

{
  "rules": {
    "products": {
      "$productId": {
        "name": {
          ".validate": "newData.isString() && newData.val().length > 2 && newData.val().length < 50"
        }
      }
    }
  }
}

Lukuarvojen vaihteluvälien määrittäminen

Lukuarvojen kohdalla on ehkä tarpeen varmistaa, että arvot ovat tietyllä vaihteluvälillä. Esimerkiksi iän on oltava positiivinen tai pistemäärän on oltava välillä 0–100.

Voitte käyttää tavallisia vertailuoperaattoreita (>, <, >=, <=).

{
  "rules": {
    "scores": {
      "$scoreId": {
        "value": {
          ".validate": "newData.isNumber() && newData.val() >= 0 && newData.val() <= 100"
        }
      }
    }
  }
}

Edistynyt hahmontunnistus

Monimutkaisempia merkkijonomuotoja, kuten sähköpostiosoitteita tai URL-osoitteita, varten voitte käyttää säännöllisiä lausekkeita .matches()-funktion avulla.

Säännölliset lausekkeet ovat tehokkaita tekstin hahmon täsmäyttämiseen tarkoitettuja malleja. Ne voivat aluksi vaikuttaa pelottavilta, mutta ovat erittäin hyödyllisiä!

{
  "rules": {
    "profiles": {
      "$profileId": {
        "email": {
          // Basic email regex pattern validation
          ".validate": "newData.isString() && newData.val().matches(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i)"
        }
      }
    }
  }
}

Vahvistussääntöjen yhdistäminen

Usein joudutte yhdistämään useita vahvistuksia. Voitte käyttää loogisia operaattoreita:

  • && (AND): kaikkien ehtojen on oltava tosia.
  • || (OR): vähintään yhden ehdon on oltava tosi.

Näin voitte toteuttaa erittäin joustavaa ja luotettavaa vahvistuslogiikkaa.

{
  "rules": {
    "tasks": {
      "$taskId": {
        ".validate": "newData.hasChildren(['title', 'status']) && newData.child('title').isString() && newData.child('title').val().length > 5"
      }
    }
  }
}

Esimerkki käyttäjäprofiilin vahvistamisesta

Kootaan kaikki yhteen kattavan käyttäjäprofiiliesimerkin avulla:

  • username: merkkijono, jossa on vähintään 3 merkkiä.
  • email: merkkijono, jonka on vastattava sähköpostiosoitteen säännöllistä lauseketta.
  • age: luku, jonka on oltava vähintään 13.
{
  "rules": {
    "userProfiles": {
      "$userId": {
        ".validate": "newData.hasChildren(['username', 'email', 'age']) && \
                      newData.child('username').isString() && \
                      newData.child('username').val().length >= 3 && \
                      newData.child('email').isString() && \
                      newData.child('email').val().matches(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i) && \
                      newData.child('age').isNumber() && \
                      newData.child('age').val() >= 13"
      }
    }
  }
}

Testaa tietosi

Tarkastellaan product-solmua koskevaa sääntöä. Tuotteella on oltava name (merkkijono, vähintään 2 ja enintään 100 merkkiä) sekä price (luku, joka on suurempi kuin 0).

Kertaus: tietojen eheys varmistettu

Hienoa työtä! Olette oppineet käyttämään Firebase Realtime Database Security Rules -sääntöjä tietojen vahvistamiseen:

  • newData-olio edustaa kirjoitettavia tietoja.
  • .validate()-sääntö asettaa ehtoja newData-oliolle.
  • Voitte tarkistaa tietotyypit (isString(), isNumber()).
  • Pakollisten kenttien olemassaolo voidaan varmistaa hasChildren()-funktion avulla.
  • Voitte vahvistaa merkkijonojen pituudet (.length) ja lukuarvojen vaihteluvälit (>, <).
  • Käyttäkää .matches()-funktiota monimutkaiseen hahmojen vahvistamiseen säännöllisten lausekkeiden avulla.
  • Yhdistämällä sääntöjä operaattoreilla && ja || saatte käyttöön tehokkaan logiikan.

Vahvistamalla tiedot varmistatte, että tietokantanne pysyy siistinä ja turvallisena!

Aloita maksutta

Opi Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
11
Oppitunnit
44

Usein kysytyt kysymykset

Onko oppitunti ”Datan validointi säännöillä” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-oppimispolun 3 oppituntia, myös oppitunnin “Datan validointi säännöillä”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Datan validointi säännöillä”?

Käytätte tietoturvasääntöjä saapuvan datan validoimiseen, jotta se vastaa odotettuja muotoja ja haitalliset kirjoitukset estetään Harjoittelet Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Datan validointi säännöillä”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-oppitunnilla?

Kyllä. Jokainen Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Tietoturvasääntöjen syntaksin ymmärtäminen
  2. Käyttäjäperustainen pääsynhallinta
  3. Datan validointi säännöillä
  4. Tietoturvasääntöjen testaaminen ja vianmääritys
← Takaisin: Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen