Firestore 쿼리를 로컬로 병합
Firestore에는 논리 OR 연산자가 없기 때문에 여러 쿼리를 로컬로 병합하는 것이 어려울 수 있습니다. 한 가지 접근 방식은 다른 쿼리의 onSuccessListener 내에 쿼리를 중첩하는 것입니다. 그러나 이는 성능에 대한 우려를 불러일으킬 수 있습니다.
이 문제를 해결하려면 Tasks를 사용하는 대체 솔루션을 권장합니다. whenAllSuccess() 메서드는 두 개 이상의 작업을 병합하고 모든 작업이 성공적으로 완료되면 콜백을 호출합니다.
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 } });
이 예에서 onSuccess() 콜백에 전달된 목록에는 작업이 정의된 것과 동일한 순서입니다.
또 다른 옵션은 작업을 연결하고 이전 작업이 완료될 때 콜백을 호출하는 continueWith() 메서드입니다. 성공적으로. whenAllSuccess()와 continueWith() 사이의 선택은 특정 애플리케이션 요구 사항 및 사용 사례에 따라 다릅니다.
위 내용은 작업을 사용하여 Firestore 쿼리를 로컬로 병합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!