gpt4 book ai didi

javascript - Firebase 不会保存具有空值的键

转载 作者:数据小太阳 更新时间:2023-10-29 03:55:45 25 4
gpt4 key购买 nike

我有一个像这样的对象:

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

我使用 Firebase 将该对象保存为:

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

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

snapshot.val()

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

{"objects":[ {"type":"path", "originX":"center", 
"originY":"center","left":48.59, "top":132.5,"width":64.5,
"height":173, "stroke":"#3f7cc4","strokeWidth":12
}]}

这给我带来了一些奇怪的问题,因为我正在使用 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);

最佳答案

目前我正在使用一个奇怪的 HACK,在将对象存储到 Firebase 之前我将所有空值转换为 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);

关于javascript - Firebase 不会保存具有空值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27580844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com