2017-12-06 2 views
2

Ich versuche eine Cloud-Funktion zu schreiben, die die Anzahl der Dokumente in der Sammlung protokolliert. Es gibt nicht eine Menge Dokumentation darüber, wahrscheinlich weil Firestore jetzt so ist ... also habe ich versucht, über den besten Weg nachzudenken, dies zu tun ... das ist die Lösung, die mir einfällt .. Ich kann es nicht herausfinden > Collection - - wie der GrafFirestore Cloud-Funktionen - Anzahl der Dokumente in der Sammlung beibehalten

Dokument 1 zurückzukehren> Dokumente

in Dokument 1 würde es die Grafen von Dokumenten in der Sammlung ideal speichern, aber ich kann nicht scheinen, um herauszufinden, wie diese

beziehen
+1

Mögliches Duplikat von [Anzahl der Dokumente in einer Sammlung mit Cloud Firestore ermitteln] (https://stackoverflow.com/questions/46553314/how-to-get-a-count-of-number- Of-Dokumente-in-einer-Sammlung-mit-Cloud-Firestore) –

Antwort

2

Nehmen wir an, Document1 ist ein Blogpost und die Subkollektion ist Kommentare.

  1. Die Funktion auf Kommentar doc create auslösen.
  2. Lesen Sie das übergeordnete Dokument und inkrementieren Sie die vorhandene Anzahl
  3. Schreiben Sie die Daten in das übergeordnete Dokument.

Hinweis: Wenn der Zählwert ändert sich schneller als einmal pro Sekunde, müssen Sie eine verteilte Zähler https://firebase.google.com/docs/firestore/solutions/counters

exports.aggregateComments = functions.firestore 
    .document('posts/{postId}/comments/{commentId}') 
    .onCreate(event => { 

    const commentId = event.params.commentId; 
    const postId = event.params.postId; 

    // ref to the parent document 
    const docRef = admin.firestore().collection('posts').doc(postId) 


    return docRef.get().then(snap => { 

      // get the total comment count and add one 
      const commentCount = snap.data().commentCount + 1; 

      const data = { commentCount } 

      // run update 
      return docRef.update(data) 
    }) 

}); 

Ich habe eine detaillierte firestore aggregation example, wenn Sie erweiterte Aggregations Berechnungen ausgeführt werden müssen über eine einfache Zählung hinaus.

Verwandte Themen