从Firebase,从第3级检索数组返回" [数组]" - Node.js

时间:2017-09-03 20:25:12

标签: arrays node.js firebase

我有以下Firebase的结构。

{ 
    "FORMS" : {
        "F_001" : {
            "key_1" : value1,
            "array_1" : ["a1", "a2", "a3"],
            "array_2" : ["b1", "b2", "b3"]
        }
    }
}

使用此代码,

var admin = require("firebase-admin");
var serviceAccount = require("./serviceAccountKey.json");

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: "https://<my_project>.firebaseio.com"
});

var db = admin.database();
var ref = db.ref().once("value", function(snapshot) {
    console.log(snapshot.val());
    process.exit(0); 
});

我得到了:

{ 
    "FORMS" : {
        "F_001" : {
            "key_1" : value1,
            "array_1" : "[Array]",
            "array_2" : "[Array]"
        }
    }
}

如果我移动&#34; F_001&#34;顶层的关键,如下所示,然后我正确获取数组数据。

{ 
    "F_001" : {
        "key_1" : value1,
        "array_1" : ["a1", "a2", "a3"],
        "array_2" : ["b1", "b2", "b3"]
    }
}

我可以做什么没有需要更改我的数据结构?

而且我不想请求数据库&#34;逐个部分&#34;,因为这个脚本被Java中的另一个项目使用。

1 个答案:

答案 0 :(得分:0)

当级别为#34;太深&#34;时,返回的对象toString()的方法snapshot可能会收缩它。

解决方案不是要记录snapshot.val(),而是使用JSON.stringify()

console.log(JSON.stringify(snapshot.val()));