In the absence of a logical OR operator in Firestore, merging two separate queries must be done locally to retrieve the desired results. To maintain proper ordering, consider using the Tasks.whenAllSuccess() method instead of nesting the second query within the success listener of the first.
Here's a code snippet demonstrating the recommended approach:
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 // ... } });
The whenAllSuccess() method returns a Task that will be completed when all the provided tasks are successfully completed. The result of the Task is a list of objects, where each object represents the result of the corresponding task. In this case, the list will contain two elements, each representing the result of firstTask and secondTask respectively. The order of the elements in the list will match the order in which the tasks were specified to whenAllSuccess().
This approach ensures that the results are ordered based on the order of the tasks, allowing you to merge the results from multiple queries while preserving their proper sequence.
以上是如何在保留訂單的同時在當地合併 Firestore 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!