2016-09-03 2 views
0

Wenn ich .set(jsonObject) in Firebase DB, mit angularfire2, das Objekt ist escaped (Backslashes werden vor jedem doppelten Anführungszeichen hinzugefügt).
Wenn ich die jsonObject manuell in DB (console.firebase.google.com) hinzufüge, funktioniert alles gut.Firebase - JSON gesendet Objekt Ergebnisse maskiert

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) 

Das Ergebnis in Firebase DB-Konsole ist: "{\"key0\":0,\"key1\":1}"

Aber ich bekomme das erwartete Ergebnis, wenn ich auf Firebase DB-Konsole gehen und ersetzen das entwichene Objekt mit den Werten von console.log(jsonObject).

Was ist das Problem?

Danke

Antwort

3

Wenn Sie den Wert auf diese Weise setzen:

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

Der Wert bei /myList/0 wird ein String sein:

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

Die Werte in der Konsole angezeigt werden als JSON angezeigt. Wenn sie als JSON formatiert ist, wird der obige Zeichenfolgenwert sein:

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

Wenn Sie den Wert mit dem Objekt und nicht der JSON-String festlegen, sollten Sie das Verhalten sehen Sie erwarten:

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