我想要从具有四个子节点的Firebase节点游戏/ {gid} / BoxScores中检索数据:Q1, Q2, Q3, Q4
以下是我试图实施的代码;其中qtrDesc是对BoxScores中任何一个子节点的引用:Q1 or Q2 or Q3 or Q4
exports.boxScoresUpdate = functions.database.ref('/Games/{gid}/BoxScores').onWrite(event => {
event.data.ref.parent.child('Qtr').once('value', data => {
console.log('Qtr is: ', data.val());
for(let i = data.val(); i > 0; i--) {
let qtrDesc = "Q".concat(i);
console.log('qtrDesc: ', qtrDesc); // Outputs the desired 'Q1, Q2, Q3, Q4'
// Outputs is "undefined" in the function logs
console.log('Qtr Score is: ', newValue.qtrDesc); // ****Does not reference the desired child node
}
});
});
上面代码的问题在于,Firebase功能信息中心日志中的输出为undefined
,因为它试图获取newValue
qtrDesc
(不存在)而不是newValue
Q1 or Q2 or Q3 or Q4
根据需要!?
json节点是:
"Games": {
"12345": {
"Date": "20170819",
"BoxScores": {
"Q1": "10",
"Q2": "21",
"Q3": "90",
"Q4": "100"
},
"Qtr": "4"
}
}
答案 0 :(得分:0)
如果没有看到您的数据结构,很难确定。但我认为你正在寻找:
event.data.ref.parent.child('Qtr').once('value', data => {
data.forEach(quarterSnap => {
let qtrDesc = quarterSnap.key;
let qtrVal = quarterSnap.val();
console.log(qtrDesc, qtrVal);
}
});
如果这不是您所需要的,请编辑您的问题以包含您正在使用的JSON结构的片段(作为文字,没有屏幕截图)。您可以通过单击"导出JSON"来实现此目的。您Firebase Database console中的链接。
答案 1 :(得分:0)
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
和
admin.database();
供参考