node.js firebase获取数据返回[object Object]

时间:2018-02-13 08:22:50

标签: javascript node.js firebase firebase-realtime-database

我遇到从firebase到index.php获取数据的问题。 firebase.js有一个获取数据函数,返回index.php。 我在index.php中有 [object Object] 不变量。如何从firebase.js获取var?

的index.php

<html>
    ...
    <body>
        <p id="demo"></p>
        <script>document.getElementById("demo").innerHTML = getData();</script>
    </body>
</html>

firebase.js

var db = firebase.database();
function getData() {
    var content = '';
    var ref = db.ref("user");

    ref.on("child_added", function(snapshot) {
        if(snapshot.exists()) {
            var key = snapshot.key;
            content += key + '<br />';
        }
    });
    return $('#demo').text(content);
}

经过修改后,我从console.log(内容)获得了var,如下所示:

undefined
[2018-02-13T10:30:06.110] [DEBUG] default - Server running at http://127.0.0.1:3000/
user1<br />
user1<br />user2<br />
user1<br />user2<br />user3<br />
user1<br />user2<br />user3<br />user4<br />
user1<br />user2<br />user3<br />user4<br />user5<br />

1 个答案:

答案 0 :(得分:0)

您的代码设置方式存在一些问题 用getData();

替换脚本标记的内容

getData函数替换为:

function getData() {
    var content = '';
    var ref = db.ref("user");

    ref.on("child_added", function(snapshot) {
        if(snapshot.exists()) {
            var key = snapshot.key;
            content += key + '<br />';
            $('#demo').innerHTML = content;
        }

    });

}

问题是你的getData函数正在返回一个对象,当在预期字符串的地方使用它时,javascript会自动转换为[object Object]。

"child_added"函数结束后的某个时间调用getData事件的回调,因此您需要在回调中进行修改才能实际工作。