我有以下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中的另一个项目使用。
答案 0 :(得分:0)
当级别为#34;太深&#34;时,返回的对象toString()
的方法snapshot
可能会收缩它。
解决方案不是要记录snapshot.val()
,而是使用JSON.stringify()
:
console.log(JSON.stringify(snapshot.val()));