Есть ли способ разрешить переменные, которые не определены, передать в Firebase как null? В моем приложении у меня много случаев, когда переменная не может быть определена, и это предотвращает добавление всей объектной модели в firebase. Поэтому я должен определить, определена ли каждая потенциальная переменная, а затем установить ее на 0, если это не так. Было бы намного проще, если Firebase просто принимала неопределенные переменные как 0 или null.
Вы можете использовать логический оператор OR для передачи null
если начальное значение является ложным.
ref.set(someValue || null);
Вы должны помнить, что существует множество условий, которые приведут к null
здесь (0
, false
, ''
, undefined
, NaN
т.д.).
Кроме того, вы можете написать вспомогательную функцию, которая провела это поведение с помощью более чистой проверки.
function safeSet(ref, val) {
if(val == undefined) {
ref.set(null);
} else {
ref.set(val);
}
}
Возможно, вы даже могли бы исправить эту функцию в прототипе Firebase Reference, если хотите.
Firebase.prototype.safeSet = function safeSet(val) {
if(typeof val == 'undefined') {
this.set(null);
} else {
this.set(val);
}
};
Это позволит вам вызвать метод safeSet
непосредственно на ваших существующих ссылках Firebase.
var ref = new Firebase("myapp.firebaseio.com");
var val = [1, 2, 3][-1];
ref.safeSet(val);