允许未定义的变量作为null传递到Firebase

时间:2016-04-24 21:43:33

标签: angularjs firebase

有没有办法允许未定义的变量作为null传递到Firebase?在我的应用程序中,我有很多情况下可能没有定义变量,它会阻止整个对象模型被添加到firebase中。因此,我必须检测是否定义了每个潜在变量,然后将其设置为0(如果不是)。如果Firebase只接受未定义的变量为0或null,那将会容易得多。

1 个答案:

答案 0 :(得分:5)

如果初始值是假的,您可以使用逻辑OR运算符传递null

ref.set(someValue || null);

您必须记住的是,有很多条件会导致null 0false'',{ {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