如何访问 Firebase 快照的元素?

时间:2021-04-13 18:08:37

标签: javascript firebase firebase-realtime-database

我有一个如下所示的 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" ] ]
}

0 个答案:

没有答案