从Firebase获取空的数据

我有一个这样的firebase树:

在这里输入图像描述

我想将这个数据检索到一个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); 

我的结果是像下面这样的空对象:

在这里输入图像描述

请帮助我如何将Firebase数据转换为JSONstring

您似乎试图在云端function中使用Firebasenetworking/ 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();