Firebase Auth & Realtime Database Apps · Leçon

Filtrer et trier les données

Apprenez à filtrer les données selon des critères précis et à trier efficacement les résultats à l’aide des requêtes Firebase

Leçon 2 sur 412 étapes

Filtrer et trier les données est une leçon Firebase Auth & Realtime Database Apps gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Firebase Auth & Realtime Database Apps, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Firebase Auth & Realtime Database Apps comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Shape Your Realtime Data

Welcome back! In the Realtime Database, data often needs to be organized or filtered before it's useful. This lesson teaches you how to precisely shape your data.

We'll cover how to sort data using different criteria and filter it to find exactly what you need.

The Need for Precision

Imagine a list of products, users, or messages. Without filtering and ordering, you'd download everything, which is inefficient and slow.

  • Filtering: Narrows down results to specific criteria (e.g., "products in stock").
  • Ordering: Arranges results in a meaningful sequence (e.g., "users by name A-Z").

These operations are crucial for building responsive and data-efficient apps.

Sorting with orderBy()

Firebase Realtime Database allows you to order your data using a single orderBy method. You can order by a child key, the item's key, or its value.

  • orderByChild("keyName"): Sorts by the value of a specified child key.
  • orderByKey(): Sorts by the unique keys of your data items.
  • orderByValue(): Sorts by the values of your data items directly (if they are simple values).

orderByChild() in Action

Let's say you have a list of users, each with a "score". You can order them by their score.

Try running this example to see how the query is structured:

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\");");
  }
}

Pinpointing Data Filters

Once ordered, you can filter your data. These methods define the range or exact match:

  • equalTo(value): Finds items where the ordered child/key/value is exactly value.
  • startAt(value): Starts retrieving items from value onwards.
  • endAt(value): Stops retrieving items at value.

These are always used after an orderBy method.

Finding Specific Items

If you want to find all users with a specific status, equalTo() is your go-to. It's often combined with orderByChild().

Here's how you'd query for users with a "status" of "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\");");
  }
}

Data within a Range

Need data between two values? startAt() and endAt() are perfect for this. For example, finding products within a price range.

This example shows how to query for items where the "price" is between 10.0 and 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);");
  }
}

Powerful Combined Queries

The true power comes from combining orderBy() with startAt(), endAt(), or equalTo(). Remember:

  • You can only use one orderBy method per query.
  • Filter methods like startAt() must correspond to the property you're ordering by.

This ensures efficient indexing and retrieval.

Fetching Top Scores

Let's get the top 5 users with scores greater than 100. This combines ordering, a start filter, and a limit (limitToFirst() or limitToLast(), which are related to pagination but also used for filtering 'top N').

We'll order by score, start at 100, and take the first few results.

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);");
  }
}

Optimizing with Indexes

For efficient ordering and filtering on child keys, you need to define indexes in your Firebase Realtime Database Security Rules.

Without indexes, Firebase will download all data and filter/order it client-side, which is slow and costly. Add ".indexOn": ["yourKey"] to your rules for frequently queried fields.

Querying Knowledge Check

Which of the following Firebase Realtime Database query methods are used to filter data based on a specific range or exact value?

Filtering & Ordering Summary

Great job! You've learned how to effectively filter and order data in Firebase Realtime Database.

  • Use orderByChild(), orderByKey(), or orderByValue() to sort.
  • Apply equalTo(), startAt(), and endAt() for precise filtering.
  • Combine these methods for powerful, specific queries.
  • Remember to add indexes for performance!

Next, we'll explore techniques for handling large datasets using pagination.

Gratuit pour commencer

Apprends Firebase Auth & Realtime Database Apps avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
11
Leçons
44

Questions Fréquemment Posées

La leçon « Filtrer et trier les données » est-elle gratuite ?

Oui — le texte complet de « Filtrer et trier les données » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Firebase Auth & Realtime Database Apps, passe à CoddyKit PRO. Le cours Firebase Auth & Realtime Database Apps comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Filtrer et trier les données » ?

Apprenez à filtrer les données selon des critères précis et à trier efficacement les résultats à l’aide des requêtes Firebase Tu pratiques Firebase Auth & Realtime Database Apps avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Firebase Auth & Realtime Database Apps ?

Aucune expérience préalable n'est requise. Firebase Auth & Realtime Database Apps sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Filtrer et trier les données » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Firebase Auth & Realtime Database Apps ?

Oui. Chaque leçon Firebase Auth & Realtime Database Apps inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Requêtes de données élémentaires
  2. Filtrer et trier les données
  3. Techniques de pagination des données
  4. Indexer les requêtes pour améliorer les performances
← Retour à Firebase Auth & Realtime Database Apps