2016-09-03 8 views
0

.set(jsonObject)をFirebase DBに挿入して、anglefire2を使用すると、オブジェクトがエスケープされます(二重引用符の前にバックスラッシュが追加されます)。
jsonObjectを手動でDB(console.firebase.google.com)に追加すると、すべて正常に動作します。Firebase - JSONで送信されたオブジェクトの結果がエスケープされました

let obj = { 
 
     key0 : 0, 
 
     key1 : 1 
 
    }; 
 
    console.log(obj); 
 
    
 
    let jsonObject = JSON.stringify(obj); 
 
    console.log(jsonObject);

// af is AngularFire instance 
af.database.object("/myList/0").set(jsonObject) 

Firebase DBコンソールの結果は次のとおりです。"{\"key0\":0,\"key1\":1}"

しかし、私はFirebase DBコンソールに移動し、値でエスケープオブジェクトを交換するとき、私は期待される結果を得ますconsole.log(jsonObject)から。

何が問題ですか?

はありがとう

答えて

3

あなたが値をこのように設定されている場合は、次のコンソールに示す

{"key0":0,"key1":1} 

値は次のようになります。/myList/0の値が文字列になります

let obj = { 
    key0 : 0, 
    key1 : 1 
}; 
let jsonObject = JSON.stringify(obj); 
af.database.object("/myList/0").set(jsonObject); 

をJSONとして表示されます。 JSONとしてフォーマットすると、上記の文字列値は次のようになります。

let obj = { 
    key0 : 0, 
    key1 : 1 
}; 
af.database.object("/myList/0").set(obj); 
:あなたがオブジェクトではなくJSON文字列を使用して値を設定した場合

"{\"key0\":0,\"key1\":1}" 

、あなたが期待している動作を確認すべきです

関連する問題