ho un oggetto come:Firebase non salverà le chiavi con valori nulli
var _json = { "objects":[{
"type":"path", "originX":"center", "originY":"center", "left":48.59,
"top":132.5, "width":64.5,"height":173, "fill":null,"stroke":"#3f7cc4",
"strokeWidth":12,"strokeDashArray":null
}]}
risparmio questo oggetto utilizzando Firebase come:
var myDataRef = new Firebase(<...>);
myDataRef.child("saved_projects").child(authData.uid).update({'P3': _json});
Ma, quando ho recuperare lo stesso utilizzando Firebase on
metodo e ottenere il valore come:
snapshot.val()
ottengo l'oggetto, ma le chiavi con null
valori ricevuti rimossi vale a dire ho ricevuto solo:
{"objects":[ {"type":"path", "originX":"center",
"originY":"center","left":48.59, "top":132.5,"width":64.5,
"height":173, "stroke":"#3f7cc4","strokeWidth":12
}]}
Questo mi sta causando alcuni problemi di strano dal momento che sto usando Fabric.js
e ha bisogno di questi valori. Per favore aiuto!
EDIT/UPDATE (Hack)
Per il momento, sto usando un hack strano, prima di riporre l'oggetto da Firebase sto convertendo tutti i valori null
a 0
. Ma voglio sapere un modo migliore per farlo.
function recursivelyReplaceNullToZero(j) {
for (var i in j){
if (typeof j[i] === "object") {
recursivelyReplaceNullToZero(j[i]);
}
if (j[i] === null) {
j[i] = 0;
}
}
}
recursivelyReplaceNullToZero(_json);
Firebase rimuove i nodi con valori nulli, non c'è molto che possiamo aiutarti con lì. https://www.firebase.com/docs/web/api/firebase/set.html "Passare null per il nuovo valore equivale a chiamare remove(), tutti i dati in questa posizione o qualsiasi percorso secondario verranno eliminati." –
Sembra un [problema XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378) e probabilmente dovresti iniziare con l'uso (imperfetto?) caso che stai cercando di risolvere. – Kato