Maison > Java > javaDidacticiel > le corps du texte

Comment fusionner localement les requêtes Firestore tout en préservant l'ordre ?

DDD
Libérer: 2024-11-15 06:32:02
original
581 Les gens l'ont consulté

How to Merge Firestore Queries Locally While Preserving Order?

Fusionner localement les requêtes Firestore avec un ordre approprié

En l'absence d'opérateur logique OR dans Firestore, la fusion de deux requêtes distinctes doit être effectuée localement pour récupérer les résultats souhaités. Pour maintenir un ordre correct, envisagez d'utiliser la méthode Tasks.whenAllSuccess() au lieu d'imbriquer la deuxième requête dans l'écouteur de réussite de la première.

Voici un extrait de code illustrant l'approche recommandée :

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
Query firstQuery = rootRef...;
Query secondQuery = rootRef...;

Task firstTask = firstQuery.get();
Task secondTask = secondQuery.get();

Task combinedTask = Tasks.whenAllSuccess(firstTask, secondTask).addOnSuccessListener(new OnSuccessListener<List<Object>>() {
    @Override
    public void onSuccess(List<Object> list) {
         // The results are ordered according to the order of the queries
         // ...
    }
});
Copier après la connexion

La méthode whenAllSuccess() renvoie une tâche qui sera terminée lorsque toutes les tâches fournies seront terminées avec succès. Le résultat de la tâche est une liste d'objets, où chaque objet représente le résultat de la tâche correspondante. Dans ce cas, la liste contiendra deux éléments, chacun représentant respectivement le résultat de firstTask et secondTask. L'ordre des éléments de la liste correspondra à l'ordre dans lequel les tâches ont été spécifiées dans whenAllSuccess().

Cette approche garantit que les résultats sont classés en fonction de l'ordre des tâches, vous permettant de fusionner les éléments de la liste. résultats de plusieurs requêtes tout en préservant leur séquence appropriée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal