从Firebase获取空数据

时间:2017-07-15 18:56:15

标签: javascript node.js firebase

我有一个像这样的firebase树:

enter image description here

我想将此数据检索到JSON对象

我尝试了以下代码,但在浏览器中显示为空:

    const http = require('http');
const firebase = require('firebase');

 var config = {
    apiKey: "AIzjhjdfkjkfkjkjkfPSFNo3Eb-e2E",
    authDomain: "demoapp.firebaseapp.com",
    databaseURL: "https://demoapp-54551.firebaseio.com",
    projectId: "demoapp-79516",
  };


var server = http.createServer((req,res)=>{

    if (!firebase.apps.length) {
    firebase.initializeApp(config);
}
    var db = firebase.database();
    var d = {}
    res.statusCode = 200;
    res.setHeader('Content-Type','text/plain');


    var readRef = db.ref('categories');

    readRef.once('value', snapshot => {     
        var key = snapshot.key;
        d[key] = [];
        d[key].push(snapshot.val());        
    });


    res.end(JSON.stringify(d));    

});


server.listen(8080);

我的结果是空对象,如下所示:

enter image description here

请帮我了解如何将Firebase数据转换为JSON字符串

1 个答案:

答案 0 :(得分:2)

您似乎正在尝试在云功能中使用Firebase Web / IoT SDK:const firebase = require('firebase');。那不行。

相反,您应该使用Firebase Admin SDK,如所有示例所示:https://firebase.google.com/docs/functions/get-started#import_the_required_modules_and_initialize

const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase); 
var db = admin.database();