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