2017-08-04 98 views
2

我想更新火力地堡節點稱爲BoxScores將舉行的Q1, Q2, Q3, Q4節點JS「動態」寫入/更新火力地堡節點

下面四個值是代碼即時試圖實現這樣做,其中qtrDesc是在Q1 or Q2 or Q3 or Q4的持有人:

for(let i = body[key]["qtr"]; i > 0; i--) { 

    let qtrDesc = "Q".concat(i); 

    ref.child("BoxScores").update({ 

     qtrDesc: body[key]["home"]["score"][i] + ":" + body[key]["away"]["score"][i] 

    }).catch(err => { 

     console.log("Error updating BoxScores node: ", err); 

    }); 
} 

與上面的代碼的問題是,當更新被執行它把qtrDescBoxScores節點而不是Q1, Q2, Q3 or Q4值我想要的或預期的!?

回答

0

你需要使用[]符號來使用變量作爲關鍵在你的更新:在問候火力觸發器

var updates = {}; 
updates[qtrDesc] = body[key]["home"]["score"][i] + ":" + body[key]["away"]["score"][i]; 
ref.child("BoxScores").update(updates).catch(err => {... 
+0

後續問題。我希望讀取基於計算的值,例如:let qtrDesc =「Q」.concat(1); console.log('**** BoxScore Info Qtr:',newValue.qtrDesc);' – Learn2Code

+0

如果我需要更新兩個孩子的動態'[]'符號!在我的例子中,它只更新'Q1 = 2:14',但是如果我想要上面的內容,但是如何修改你的響應,而且還想更新像'lastupdate:firebase.database.ServerValue.TIMESTAMP'這樣的子時間戳記' – Learn2Code

+0

'updates [ lastupdate「] = firebase.database.ServerValue.TIMESTAMP' –