Heim > Java > javaLernprogramm > Wie kann ich Dokumente in einer Firestore-Sammlung effizient zählen?

Wie kann ich Dokumente in einer Firestore-Sammlung effizient zählen?

Patricia Arquette
Freigeben: 2024-11-23 08:44:16
Original
713 Leute haben es durchsucht

How Can I Efficiently Count Documents in a Firestore Collection?

Dokumente in einer Firestore-Sammlung zählen

Bearbeitet: 20. Oktober 2022

Firestore jetzt stellt eine count()-Methode bereit, die die Dokumente in einer Sammlung oder die von einer Abfrage zurückgegebenen Dokumente zählt, ohne die Dokumente zu lesen. Dadurch entfällt die Notwendigkeit, einen Zähler zu pflegen.

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();
    }
});
Nach dem Login kopieren

Bearbeitung: 10. Juli 2021

Firebase führt die Distributed Counter Extension ein, die einen hoch skalierbaren Zählerdienst bietet für schnelle Aktionen wie Aufrufe, Likes oder Shares. Mit dieser Erweiterung können Zählvorgänge die Beschränkung von einem Schreibvorgang pro Sekunde überschreiten.

Ursprüngliche Antwort:

Anzahl der Dokumente ohne getDocumentCount()-Methode abrufen

Da Firestore keine dedizierte getDocumentCount()-Methode hat, sind alternative Ansätze erforderlich, um die Anzahl der Dokumente in einem zu zählen Sammlung.

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());
                }
            }
        });
Nach dem Login kopieren

Einschränkungen und Alternativen

Dieser Ansatz eignet sich für kleine Datensätze. Ziehen Sie für größere Datensätze alternative Methoden in Betracht:

  • Cloud Functions-Zähler: Aktualisieren Sie einen Zähler in den Cloud Functions, wenn ein Dokument hinzugefügt oder gelöscht wird. Dies ist effizient, aber auf weniger als einen Vorgang pro Sekunde beschränkt.
  • Verteilte Zähler: Implementieren Sie verteilte Zähler, wie in der Firebase-Dokumentation erläutert. Dieser Ansatz ermöglicht Vorgänge mit hoher Geschwindigkeit, verursacht jedoch zusätzliche Kosten.
  • Firebase Realtime Database: Speichern Sie die Zählung in der Firebase Realtime Database für nahezu Echtzeitaktualisierungen und Kosteneffizienz.

Das obige ist der detaillierte Inhalt vonWie kann ich Dokumente in einer Firestore-Sammlung effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage