Datan suodattaminen ja järjestäminen
Opitte suodattamaan dataa tiettyjen ehtojen perusteella ja järjestämään tuloksia tehokkaasti Firebase-kyselyillä
Datan suodattaminen ja järjestäminen on ilmainen Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-oppitunti CoddyKitissä. Tämä on oppitunti 2/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.
Muotoile reaaliaikaiset tietosi
Tervetuloa takaisin! Realtime Databasessa tietoja on usein järjestettävä tai suodatettava, ennen kuin niistä on hyötyä. Tällä oppitunnilla opitte muotoilemaan tiedot täsmällisesti.
Käsittelemme tietojen järjestämistä eri perusteilla ja niiden suodattamista juuri tarvitsemienne tietojen löytämiseksi.
Täsmällisyyden tarve
Kuvitelkaa tuotteiden, käyttäjien tai viestien luettelo. Ilman suodatusta ja järjestämistä joutuisitte lataamaan kaiken, mikä on tehotonta ja hidasta.
- Suodatus: Rajaa tulokset tiettyjen ehtojen perusteella (esimerkiksi "varastossa olevat tuotteet").
- Järjestäminen: Asettaa tulokset mielekkääseen järjestykseen (esimerkiksi "käyttäjät nimen mukaan A–Ö").
Nämä toiminnot ovat ratkaisevan tärkeitä nopeasti reagoivien ja tehokkaasti tietoja käsittelevien sovellusten rakentamisessa.
Järjestäminen orderBy()-metodilla
Firebase Realtime Database mahdollistaa tietojen järjestämisen yhdellä orderBy-metodilla. Voit järjestää tiedot lapsiavaimen, kohteen avaimen tai sen arvon perusteella.
orderByChild("keyName"): Järjestää tiedot määritetyn lapsiavaimen arvon perusteella.orderByKey(): Järjestää tiedot kohteiden yksilöllisten avainten perusteella.orderByValue(): Järjestää tiedot suoraan niiden arvojen perusteella (jos arvot ovat yksinkertaisia).
orderByChild() käytännössä
Oletetaan, että sinulla on luettelo käyttäjistä ja jokaisella käyttäjällä on "score". Voit järjestää käyttäjät pistemäärän perusteella.
Suorita tämä esimerkki nähdäksesi, miten kysely muodostetaan:
public class OrderByChildDemo {
public static void main(String[] args) {
System.out.println("--- Firebase Query for Users by Score ---");
System.out.println("Imagine a database path: 'users'");
System.out.println("To order users by their 'score' child:");
System.out.println(" .orderByChild(\"score\")");
System.out.println("\nThis query prepares to fetch users ordered by 'score'.");
System.out.println("Real Firebase query would look like:");
System.out.println("// Query usersByScore = databaseRef.child(\"users\")");
System.out.println("// .orderByChild(\"score\");");
}
}Tietojen suodattimien kohdentaminen
Kun tiedot on järjestetty, voit suodattaa niitä. Näillä metodeilla määritetään alue tai täsmällinen osuma:
equalTo(value): Etsii kohteet, joissa järjestetty lapsiavain, avain tai arvo on täsmälleenvalue.startAt(value): Aloittaa kohteiden hakemisen arvostavalueeteenpäin.endAt(value): Lopettaa kohteiden hakemisen arvoonvalue.
Näitä käytetään aina orderBy-metodin jälkeen.
Tiettyjen kohteiden etsiminen
Jos haluat etsiä kaikki käyttäjät, joilla on tietty tila, equalTo() on sopiva metodi. Sitä käytetään usein yhdessä orderByChild()-metodin kanssa.
Seuraavassa näet, miten kysely muodostetaan käyttäjille, joiden "status" on "active":
public class EqualToDemo {
public static void main(String[] args) {
System.out.println("--- Firebase Query for Active Users ---");
System.out.println("Imagine a database path: 'users'");
System.out.println("To find users where 'status' is 'active':");
System.out.println(" .orderByChild(\"status\")");
System.out.println(" .equalTo(\"active\")");
System.out.println("\nThis query would fetch users with 'status' set to 'active'.");
System.out.println("Real Firebase query would look like:");
System.out.println("// Query activeUsers = databaseRef.child(\"users\")");
System.out.println("// .orderByChild(\"status\")");
System.out.println("// .equalTo(\"active\");");
}
}Tietoarvot tietyllä välillä
Tarvitsetko tiedot kahden arvon väliltä? startAt() ja endAt() sopivat tähän erinomaisesti. Voit esimerkiksi etsiä tuotteita tietyn hinta-alueen sisältä.
Tässä esimerkissä kysely hakee kohteet, joiden "price" on välillä 10.0–50.0:
public class RangeQueryDemo {
public static void main(String[] args) {
System.out.println("--- Firebase Query for Price Range ---");
System.out.println("Imagine a database path: 'products'");
System.out.println("To find products with 'price' between 10.0 and 50.0:");
System.out.println(" .orderByChild(\"price\")");
System.out.println(" .startAt(10.0)");
System.out.println(" .endAt(50.0)");
System.out.println("\nThis query would fetch products with 'price' in the specified range.");
System.out.println("Real Firebase query would look like:");
System.out.println("// Query affordableProducts = databaseRef.child(\"products\")");
System.out.println("// .orderByChild(\"price\")");
System.out.println("// .startAt(10.0)");
System.out.println("// .endAt(50.0);");
}
}Tehokkaat yhdistelmäkyselyt
Yhdistämällä orderBy()-metodin metodeihin startAt(), endAt() tai equalTo() saat käyttöösi niiden todellisen tehon. Muista seuraavat asiat:
- Yhdessä kyselyssä voi käyttää vain yhtä
orderBy-metodia. - Suodatusmetodien, kuten
startAt(), on vastattava ominaisuutta, jonka perusteella järjestät tiedot.
Näin indeksointi ja tietojen haku pysyvät tehokkaina.
Parhaiden pistemäärien hakeminen
Haetaan viisi parasta käyttäjää, joiden pistemäärä on suurempi kuin 100. Tässä yhdistyvät järjestäminen, aloitussuodatin ja rajoitus (limitToFirst() tai limitToLast(), jotka liittyvät sivutukseen mutta joita käytetään myös suodatettaessa parhaita N kohdetta).
Järjestämme käyttäjät pistemäärän perusteella, aloitamme arvosta 100 ja otamme ensimmäiset tulokset.
public class CombinedQueryDemo {
public static void main(String[] args) {
System.out.println("--- Firebase Query for Top Scores ---");
System.out.println("Imagine a database path: 'players'");
System.out.println("To get players with score > 100, ordered by score, limited to 5:");
System.out.println(" .orderByChild(\"score\")");
System.out.println(" .startAt(100)");
System.out.println(" .limitToFirst(5)");
System.out.println("\nThis query would fetch the first 5 players with 'score' >= 100.");
System.out.println("Real Firebase query would look like:");
System.out.println("// Query topPlayers = databaseRef.child(\"players\")");
System.out.println("// .orderByChild(\"score\")");
System.out.println("// .startAt(100)");
System.out.println("// .limitToFirst(5);");
}
}Optimointi indeksien avulla
Jotta lapsiavainten perusteella järjestäminen ja suodattaminen olisi tehokasta, Firebase Realtime Database Security Rules -säännöissä on määritettävä indeksit.
Ilman indeksejä Firebase lataa kaikki tiedot ja suodattaa tai järjestää ne asiakaspuolella, mikä on hidasta ja kuluttaa paljon resursseja. Lisää usein kyseltäville kentille sääntöihisi ".indexOn": ["yourKey"].
Kyselytietojen tarkistus
Mitä seuraavista Firebase Realtime Databasen kyselymetodeista käytetään tietojen suodattamiseen tietyn alueen tai täsmällisen arvon perusteella?
Suodatuksen ja järjestämisen yhteenveto
Hienoa työtä! Olet oppinut suodattamaan ja järjestämään tietoja tehokkaasti Firebase Realtime Databasessa.
- Järjestä tiedot metodeilla
orderByChild(),orderByKey()taiorderByValue(). - Käytä täsmälliseen suodatukseen metodeja
equalTo(),startAt()jaendAt(). - Yhdistä näitä metodeja tehokkaiden ja tarkkojen kyselyjen muodostamiseksi.
- Muista lisätä indeksit suorituskyvyn parantamiseksi!
Seuraavaksi tutustumme suurten tietomäärien käsittelyyn sivutuksen avulla.
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 suodattaminen ja järjestäminen” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Firebase-todennus- ja reaaliaikaisten tietokantasovellusten rakentaminen-oppimispolun 3 oppituntia, myös oppitunnin “Datan suodattaminen ja järjestäminen”. 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 suodattaminen ja järjestäminen”?
Opitte suodattamaan dataa tiettyjen ehtojen perusteella ja järjestämään tuloksia tehokkaasti Firebase-kyselyillä 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 2/4.
Kuinka kauan ”Datan suodattaminen ja järjestäminen”-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
- Datan peruskyselyt
- Datan suodattaminen ja järjestäminen
- Datan sivutustekniikat
- Kyselyiden indeksointi suorituskykyä varten