节点JS“动态”写入/更新火力地堡节点

问题描述:

我想更新火力地堡节点称为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值我想要的或预期的!?

你需要使用[]符号来使用变量作为关键在你的更新:在问候火力触发器

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' –