Firestore에 논리 OR 연산자가 없는 경우 원하는 결과를 검색하려면 두 개의 개별 쿼리를 로컬에서 병합해야 합니다. 올바른 순서를 유지하려면 첫 번째 쿼리의 성공 리스너 내에 두 번째 쿼리를 중첩하는 대신 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) { // The results are ordered according to the order of the queries // ... } });
whenAllSuccess() 메서드는 제공된 모든 작업이 성공적으로 완료되면 완료될 Task를 반환합니다. 작업의 결과는 개체 목록이며, 각 개체는 해당 작업의 결과를 나타냅니다. 이 경우 목록에는 각각 firstTask 및 secondTask의 결과를 나타내는 두 개의 요소가 포함됩니다. 목록의 요소 순서는 작업이 whenAllSuccess()에 지정된 순서와 일치합니다.
이 접근 방식을 사용하면 작업 순서에 따라 결과가 정렬되므로 적절한 순서를 유지하면서 여러 쿼리의 결과를 얻습니다.
위 내용은 순서를 유지하면서 Firestore 쿼리를 로컬로 병합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!