Da in Firestore kein logischer ODER-Operator vorhanden ist, muss das Zusammenführen zweier separater Abfragen lokal erfolgen, um die gewünschten Ergebnisse abzurufen. Um die richtige Reihenfolge beizubehalten, sollten Sie die Verwendung der Methode Tasks.whenAllSuccess() in Betracht ziehen, anstatt die zweite Abfrage im Erfolgs-Listener der ersten zu verschachteln.
Hier ist ein Codeausschnitt, der den empfohlenen Ansatz demonstriert:
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 // ... } });
Die Methode whenAllSuccess() gibt eine Aufgabe zurück, die abgeschlossen wird, wenn alle bereitgestellten Aufgaben erfolgreich abgeschlossen wurden. Das Ergebnis der Aufgabe ist eine Liste von Objekten, wobei jedes Objekt das Ergebnis der entsprechenden Aufgabe darstellt. In diesem Fall enthält die Liste zwei Elemente, die jeweils das Ergebnis von firstTask bzw. secondTask darstellen. Die Reihenfolge der Elemente in der Liste entspricht der Reihenfolge, in der die Aufgaben für whenAllSuccess() angegeben wurden.
Dieser Ansatz stellt sicher, dass die Ergebnisse basierend auf der Reihenfolge der Aufgaben geordnet werden, sodass Sie sie zusammenführen können Ergebnisse aus mehreren Abfragen unter Beibehaltung der richtigen Reihenfolge.
Das obige ist der detaillierte Inhalt vonWie kann ich Firestore-Abfragen lokal zusammenführen und gleichzeitig die Reihenfolge wahren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!