Firestore-Abfragen lokal zusammenführen
Bei der Arbeit mit Firestore gibt es keinen logischen ODER-Operator zum Kombinieren von Abfragen. Um zwei separate Abfragen lokal zusammenzuführen, können Sie die Methode Tasks.whenAllSuccess() verwenden.
Tasks.whenAllSuccess() verwendet eine Liste von Aufgaben als Argumente und gibt eine neue Aufgabe zurück, die nur dann erfolgreich abgeschlossen wird, wenn alle Eingabeaufgaben erfolgreich abgeschlossen wurden erfolgreich abschließen. Das Ergebnis der zurückgegebenen Aufgabe ist eine Liste der Ergebnisse der Eingabeaufgaben in derselben Reihenfolge, in der die Eingabeaufgaben übergeben wurden.
So können Sie zwei Abfragen mit Tasks.whenAllSuccess() zusammenführen:
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 } });
Wenn Sie die onSuccess()-Methode der kombinierten Aufgabe überschreiben, erhalten Sie eine Liste von Objekten mit der genauen Reihenfolge der Aufgaben, die als Argumente an übergeben wurden whenAllSuccess()-Methode. Dadurch können Sie die Ergebnisse der beiden Abfragen zusammenführen und dabei ihre richtige Reihenfolge beibehalten.
Anstelle von Tasks.whenAllSuccess() können Sie auch die Verwendung von Tasks.continueWith() in Betracht ziehen, um ein ähnliches Ergebnis zu erzielen. Die Wahl zwischen den beiden Methoden hängt jedoch vom konkreten Anwendungsfall Ihrer Anwendung ab. Weitere Informationen zu Tasks.continueWith() finden Sie in der offiziellen Dokumentation.
Das obige ist der detaillierte Inhalt vonWie kann ich Firestore-Abfragen lokal mit Tasks.whenAllSuccess() kombinieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!