有没有办法允许未定义的变量作为null传递到Firebase?在我的应用程序中,我有很多情况下可能没有定义变量,它会阻止整个对象模型被添加到firebase中。因此,我必须检测是否定义了每个潜在变量,然后将其设置为0(如果不是)。如果Firebase只接受未定义的变量为0或null,那将会容易得多。
答案 0 :(得分:5)
如果初始值是假的,您可以使用逻辑OR运算符传递null
。
ref.set(someValue || null);
您必须记住的是,有很多条件会导致null
0
,false
,''
,{ {1}},undefined
等)。
或者,您可以编写一个辅助函数,通过更清晰的检查来包装此行为。
NaN
如果需要,您甚至可以将该功能修补到Firebase参考原型中。
function safeSet(ref, val) {
if(val == undefined) {
ref.set(null);
} else {
ref.set(val);
}
}
这将允许您直接在现有的Firebase参考上调用Firebase.prototype.safeSet = function safeSet(val) {
if(typeof val == 'undefined') {
this.set(null);
} else {
this.set(val);
}
};
方法。
safeSet