Firebase不会保存具有空值的键

sof*_*var 9 javascript object firebase

我有一个像这样的对象:

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
}]}
Run Code Online (Sandbox Code Playgroud)

我使用Firebase保存此对象:

var myDataRef = new Firebase(<...>);
myDataRef.child("saved_projects").child(authData.uid).update({'P3': _json});
Run Code Online (Sandbox Code Playgroud)

但是,当我使用Firebase on方法检索相同内容并获取值时:

snapshot.val()
Run Code Online (Sandbox Code Playgroud)

我得到了对象,但有null值的键被删除,即我只得到:

{"objects":[ {"type":"path", "originX":"center", 
 "originY":"center","left":48.59, "top":132.5,"width":64.5, 
 "height":173, "stroke":"#3f7cc4","strokeWidth":12
}]}
Run Code Online (Sandbox Code Playgroud)

这导致我一些奇怪的问题,因为我正在使用Fabric.js它需要这些值.请帮忙!

编辑/更新(黑客)

目前,我正在使用一个奇怪的HACK,然后将对象存储到Firebase我将所有null值转换为0.但我想知道一个更好的方法.

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);
Run Code Online (Sandbox Code Playgroud)

sof*_*var 5

目前我正在使用一种奇怪的 HACK,在将对象存储到 Firebase 之前,我将所有 null 值转换为 0。但我想知道更好的方法,拜托!

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);
Run Code Online (Sandbox Code Playgroud)