>  기사  >  Java  >  Firestore 컬렉션의 문서 수를 효율적으로 계산하려면 어떻게 해야 합니까?

Firestore 컬렉션의 문서 수를 효율적으로 계산하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-23 08:44:16651검색

How Can I Efficiently Count Documents in a Firestore Collection?

Firestore 컬렉션의 문서 계산

편집: 2022년 10월 20일

현재 Firestore 컬렉션의 문서 또는 반환된 문서의 개수를 계산하는 count() 메서드를 제공합니다. 문서를 읽지 않고 쿼리합니다. 이렇게 하면 카운터를 유지할 필요가 없습니다.

Query query = db.collection("Posts").orderBy("createdAt");
Task<Long> task = query.count();
task.addOnCompleteListener(new OnCompleteListener<Long>() {
    @Override
    public void onComplete(@NonNull Task<Long> task) {
        long count = task.getResult();
    }
});

편집: 2021년 7월 10일

Firebase는 확장성이 뛰어난 카운터 서비스를 제공하는 분산 카운터 확장 프로그램을 도입했습니다. 조회수, 좋아요, 공유와 같은 빠른 속도의 활동을 위한 것입니다. 이 확장을 사용하면 계산 작업이 초당 1개의 쓰기 작업 제한을 초과할 수 있습니다.

원래 답변:

getDocumentCount() 메서드 없이 문서 수 검색

Firestore에는 전용 getDocumentCount() 메서드가 없기 때문에 대안 컬렉션의 문서 수를 계산하려면 접근 방식이 필요합니다.

db.collection("Posts").get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    int count = task.getResult().size();
                    Log.d(" TAG", count + "" );
                } else {
                    Log.d(TAG, "Error getting documents: ", task.getException());
                }
            }
        });

제한 사항 및 대안

이 접근 방식은 소규모 데이터 세트에 적합합니다. 더 큰 데이터세트의 경우 대체 방법을 고려하세요.

  • Cloud Functions 카운터: 문서가 추가되거나 삭제될 때마다 Cloud Functions에서 카운터를 업데이트합니다. 이는 효율적이지만 초당 1회 미만의 작업으로 제한됩니다.
  • 분산 카운터: Firebase 문서에 설명된 대로 분산 카운터를 구현합니다. 이 접근 방식은 고속 작업을 수용하지만 추가 비용이 발생합니다.
  • Firebase 실시간 데이터베이스: 실시간에 가까운 업데이트와 비용 효율성을 위해 Firebase 실시간 데이터베이스에 개수를 저장합니다.

위 내용은 Firestore 컬렉션의 문서 수를 효율적으로 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.