2017-05-07 48 views
0

我正在使用Firebase存儲數據,並且想要顯示統計信息。因爲Firebase似乎不支持像groupBy這樣的功能,我可以就如何實現它提供建議嗎?它應該在客戶端完成嗎?Angularfire2:如何做羣

回答

0

既可以在客戶端執行,也可以將總值存儲在數據庫中。

0

您可以使用$ extend創建使用基類的新功能,以便您可以轉換數據。

他們甚至有創造一個getTotal函數的例子:https://github.com/firebase/angularfire/blob/master/docs/guide/extending-services.md#extending-firebasearray

的例子

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

這個問題是關於Angular的,而不是Angular.js。 – 2017-05-08 02:43:07

1

你有其中兩個在另一個答案中提到的三種基本選擇。

  1. 在本地進行計算。
  2. 每當底層數據發生變化時,在本地重新進行計算,並將聚合/分組數據存儲在數據庫的某處,並根據需要進行檢索。
  3. 編寫一個Firebase function它觀察可能更改的數據,進行計算並將結果存儲到數據庫的某處。如果您處理大量數據,這可能是最好的解決方案。
+0

第三個解決我的問題,謝謝Torazaburo! –

+0

如果第三個選項不是免費的,如果超過非常小的配額,第二個選項可能是另一個好的候選人。 :-) –