如何在我的网站上显示Firebase数据库中的数据?

时间:2016-03-23 03:52:11

标签: javascript firebase firebase-realtime-database

在Firebase上,我遇到以下问题;我的数据结构如下:

myApp
- myList
    - KKJJXX...1        myString: "String One"
    - KKJJXX...2        myString: "String Two"
    - KKJJXX...3        myString: "String Three"

我想制作一些JavaScript(在我的网页中)列出上面数据库中myString的值。 这是我在挖掘网络后想出的。它起作用,但不完全。 我可以在浏览器的调试控制台中看到我有我想要的数据。我在脚本之后更准确地写下我的疑虑。

<script>
var ref = new Firebase("https://myApp.firebaseio.com/myList/");

ref.on("value", function(snapshot) {
    for (x in snapshot.val()) {
        var xRef = new Firebase("https://myApp.firebaseio.com/myList/"+x+"/");
        xRef.once("value", function(xsnapshot) {
            var name = xsnapshot.child("myString");
            console.log(name);
        });
    }
}, function (errorObject) {
    console.log("The read failed: " + errorObject.code);
});
</script>

在调试控制台中,我得到这一行(3次):

Object { A: Object, Y: Object, g: Object }

我可以看到A对象包含我正在寻找的信息(myString)。 我应该在上面的脚本中更改什么来直接列出控制台上myString的内容?

1 个答案:

答案 0 :(得分:3)

当您致电child时,您将获得新的FirebaseReference - 而不是数据快照。你需要.on('value')来获取ref的数据,但这很愚蠢,因为你已经掌握了数据。

相反,只需将快照的数据存储在本地变量中并对其进行操作。

ref.on("value", function(snapshot) {
    for (x in snapshot.val()) {
        var xRef = new Firebase("https://myApp.firebaseio.com/myList/"+x+"/");
        xRef.once("value", function(xsnapshot) {
            var data = xsnapshot.val();
            var name = data["myString"];
            console.log(name);
        });
    }
});