Разрешить неопределенным переменным передавать в Firebase как ноль

0

Есть ли способ разрешить переменные, которые не определены, передать в Firebase как null? В моем приложении у меня много случаев, когда переменная не может быть определена, и это предотвращает добавление всей объектной модели в firebase. Поэтому я должен определить, определена ли каждая потенциальная переменная, а затем установить ее на 0, если это не так. Было бы намного проще, если Firebase просто принимала неопределенные переменные как 0 или null.

Теги:
firebase

1 ответ

5

Вы можете использовать логический оператор 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);
  • 0
    элегантное решение ....
  • 1
    Я передаю весь объект в набор, и некоторые элементы объекта не определены, есть ли способ обнаружить это?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню