2016-12-03 78 views
0

我的目標是在nodeJS服務器上創建一個陣列,該陣列基於Firebase實時數據庫後端更改的數據不斷更新。從firebase數據庫創建一個動態數組,使用child_removed進行更新

一旦數據在數組中,我需要用MathJS執行一次計算,然後將這個新值放到我的firebase數據庫的一個單獨位置。我能夠將所有節點服務器上的所有內容最初與child_added存儲在一個數組中,執行我的計算並將其推送到firebase。當新的提交從客戶端添加到數據庫時,我也能夠更新我的計算。

var db = firebase.database(); 
// Event Reference 
var specificEvent = db.ref('/posts/area/eventID')  


var sampleArray = []; 
specificEvent.on("child_added", function(snapshot) { 
var newPost = snapshot.val(); 

//push data to array 
sampleArray.push(newPost.userSubmittedNumbers); 

//calculation 
console.log(math.mean(sampleArray)); 

我的問題是,我沒有辦法跟蹤調用child_removed時想從數組中刪除哪個特定項目。我想過使用每個帖子的firebase生成密鑰作爲鍵/值對,但我相信在MathJS中,所有內容都只需要一個數組。會放棄MathJS並使用替代方案,或僅僅使用代碼是唯一的解決方案?

任何想法或建議將不勝感激。謝謝!

回答

0

如何按照您已經考慮的方式存儲鍵/值對,然後 - 假設您不介意另一個庫 - 使用Underscore's pluck()將值存入數組中,您可以對其進行數學運算?

+0

謝謝!這看起來非常有用。請試一試,並儘快將我的答案標記爲正確。你會知道'pluck()'是否會自動檢測何時從對象中添加或刪除鍵/值,然後根據對象中更改的內容更新數組?我想我必須做些事情才能實現這一目標? (新編碼,所以任何幫助將非常感激!) – SethG