2017-09-03 4 views
0

私は以下のFirebaseの構造を持っています。このコードではFirebaseから、3番目のレベルから配列を取得すると、 "[Array]" - Node.jsが返されます。

{ 
    "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]" 
     } 
    } 
} 

私は次のようなトップレベルに "F_001" キーを、移動する場合は、私が手配列データを正しく読み込みます。

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

私は何をすることができます私のデータ構造を変更する必要なしに

そして、このスクリプトはJavaの別のプロジェクトで使用されているため、データベースを「部分的に」要求したくありません。

答えて

0

おそらく、返されたオブジェクトsnapshotのメソッドtoString()は、レベルが「深すぎる」​​と契約している可能性があります。

ソリューションはsnapshot.val()をログに記録しますが、使用しないようにされてJSON.stringify()

console.log(JSON.stringify(snapshot.val())); 
関連する問題