2017-05-07 7 views
0
?

Ich benutze Firebase, um die Daten zu speichern und statistische Informationen anzuzeigen. Scheint, dass Firebase Funktionen wie groupBy nicht unterstützt, kann ich Ratschläge darüber geben, wie man es erreicht? Sollte es auf der Client-Seite gemacht werden?Angularfire2: Wie mache ich eine Gruppe mit

Antwort

0

Entweder es Client-Seite oder wenn möglich, speichern Sie den Gesamtwert in der Datenbank.

0

Sie können $ extend verwenden, um neue Features zu erstellen, die die Basisklassen verwenden, damit Sie Ihre Daten transformieren können.

Sie haben sogar ein Beispiel für eine getTotal Funktion zu schaffen: https://github.com/firebase/angularfire/blob/master/docs/guide/extending-services.md#extending-firebasearray

Das Beispiel

app.factory("ListWithTotal", ["$firebaseArray", 
    function($firebaseArray) { 
    // create a new service based on $firebaseArray 
    var ListWithTotal = $firebaseArray.$extend({ 
     getTotal: function() { 
     var total = 0; 
     // the array data is located in this.$list 
     angular.forEach(this.$list, function(rec) { 
      total += rec.amount; 
     }); 
     return total; 
     } 
    }); 

    return function(listRef) { 
     // create an instance of ListWithTotal (the new operator is required) 
     return new ListWithTotal(listRef); 
    } 
    } 
]); 
+0

Diese Frage bezieht sich auf Angular, nicht Angular.js. –

1

Sie haben drei grundlegende Optionen, von denen zwei in einer anderen Antwort erwähnt wurden.

  1. Die Berechnung lokal durchführen.
  2. Jedes Mal, wenn sich die zugrunde liegenden Daten ändern, wiederholen Sie die Berechnung lokal und speichern Sie die aggregierten/gruppierten Daten irgendwo in der Datenbank und rufen Sie sie bei Bedarf ab.
  3. Schreiben Sie eine Firebase function, die die Daten überwacht, die sich ändern können, führt die Berechnung durch und speichert das Ergebnis irgendwo in der Datenbank. Dies könnte die beste Lösung sein, wenn Sie mit einer Menge Daten zu tun haben.
+0

Der dritte löst mein Problem, danke Torazaburo! –

+0

Da die dritte Option nicht frei ist, wenn die Quote, die sehr klein ist, überschritten wird, kann die zweite Option ein anderer guter Kandidat sein. :-) –

Verwandte Themen