Maison > Java > javaDidacticiel > Comment puis-je combiner des requêtes Firestore localement à l'aide de Tasks.whenAllSuccess() ?

Comment puis-je combiner des requêtes Firestore localement à l'aide de Tasks.whenAllSuccess() ?

Mary-Kate Olsen
Libérer: 2024-11-26 08:40:13
original
562 Les gens l'ont consulté

How Can I Combine Firestore Queries Locally Using Tasks.whenAllSuccess()?

Fusionner localement les requêtes Firestore

Lorsque vous travaillez avec Firestore, il n'y a pas d'opérateur OU logique pour combiner les requêtes. Pour fusionner localement deux requêtes distinctes, vous pouvez utiliser la méthode Tasks.whenAllSuccess().

Tasks.whenAllSuccess() prend une liste de tâches comme arguments et renvoie une nouvelle tâche qui se termine avec succès uniquement lorsque toutes les tâches d'entrée terminer avec succès. Le résultat de la tâche renvoyée est une liste des résultats des tâches d'entrée, dans le même ordre dans lequel les tâches d'entrée ont été transmises.

Voici comment fusionner deux requêtes à l'aide de Tasks.whenAllSuccess() :

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) {
        // Do what you need to do with your list
    }
});
Copier après la connexion

Lorsque vous remplacez la méthode onSuccess() de la tâche combinée, vous recevrez une liste d'objets avec l'ordre exact des tâches qui ont été passées en arguments dans le méthode whenAllSuccess(). Cela vous permet de fusionner les résultats des deux requêtes tout en conservant leur ordre approprié.

Au lieu de Tasks.whenAllSuccess(), vous pouvez également envisager d'utiliser Tasks.continueWith() pour obtenir un résultat similaire. Cependant, le choix entre les deux méthodes dépend du cas d'utilisation spécifique de votre application. Reportez-vous à la documentation officielle pour plus de détails sur Tasks.continueWith().

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal