Datan validointi säännöillä
Käytätte tietoturvasääntöjä saapuvan datan validoimiseen, jotta se vastaa odotettuja muotoja ja haitalliset kirjoitukset estetään
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 ehtojanewData-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!
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
- Tietoturvasääntöjen syntaksin ymmärtäminen
- Käyttäjäperustainen pääsynhallinta
- Datan validointi säännöillä
- Tietoturvasääntöjen testaaminen ja vianmääritys