我有一个如下所示的 Firebase 数据库:
masterSheet
0
0: 0
1: "What is your favorite type of dog?"
2: "Some values"
3: "Some more values"
4: "Blah blah"
5: "Animals"
1
0: 1
1: "What's 2 + 2?"
我正在使用此代码来检索数据库的快照。
var database = firebase.database();
var ref = database.ref('masterSheet')
ref.on("value", function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var data = childSnapshot.val();
console.log(data);
})
})
这似乎有效,因为当我在浏览器中运行它并检查元素 > 控制台时,我可以看到:
(6) [0, "What is your favorite type of dog?", "Some values", etc
(6) [1, "What's 2 + 2?", "Some values", etc
问题是我似乎无法像普通的 JavaScript 对象那样访问这些数据。我将此用于网络应用测验,并且需要能够单独访问每个问题和相关值。
如果我尝试使用 console.log(data[0]) 访问对象中的第一个值,结果如下:
0
1
2
3
4
etc
这看起来是对的,但如果我做数据[1],结果是“未定义”。
我在这里做错了什么?基本上我需要制作一个字典对象列表,或者一个嵌套字典,或者我可以通过调用与之关联的索引/数字来访问每个问题的东西。我希望能够创建一个对象,其中键是问题编号(0 索引),然后其余值位于该对象内的嵌套字典中。
但在过去的几天里,我一直在试图弄清楚如何访问这个 Firebase 快照,只是无法弄清楚结构。
编辑:这是我的 JSON 的结构。
{
"masterSheet" : [ [ 0, "What's 2+2?", "22", "4", "6", "Math question" ], [ 1, "What's the capital of Nevada?", "Reno", "Las Vegas", "Carson City", "Geography" ], [ 2, "What's the meaning of life?", "40", "41", "42", "Philosophy" ] ]
}