Как разрешить дополнительные поля с помощью компилятора болтов?

При определении типа он запрещает любые дополнительные поля. Есть ли способ разрешить дополнительные поля на языке болтов?

В частности, как избежать вывода:

  "$other": {
    ".validate": "false"
  },

person AJcodez    schedule 03.01.2016    source источник


Ответы (2)


Bolt проверяет схему только в том случае, если применяется тип

type Person {
  name: String;
}

path /person is Person;
path /personNoValidation; // not validated
person David East    schedule 04.01.2016
comment
Спасибо за ответ. Да, я знаю, что это предотвращает появление дополнительных полей. Мой вопрос: я хочу разрешить дополнительные поля. Как я могу это сделать? - person AJcodez; 04.01.2016
comment
@AJcodez О боже. Как я это пропустил? Извините, мне нужен кофе, и я скоро отвечу. - person David East; 04.01.2016
comment
Таким образом, без создания нового пути к данным не обойтись. Думаю, это имеет смысл. - person AJcodez; 05.01.2016
comment
Вы также можете использовать необязательные типы, но только для того, что вы укажете. - person David East; 05.01.2016
comment
Да, я хотел применить определенные пользовательские поля, а затем разрешить все остальное, возвращаемое при входе с авторизацией. Я только что добавил каждое поле вручную с необязательным нулевым значением, и это то же самое, только лучше встроенные документы. Так что я счастлив, даже если мои пальцы болят. - person AJcodez; 05.01.2016

Ты прав. Вам нужно вручную удалить правило $other:, чтобы разрешить необязательные поля. Добавление $optional: Any | Null; не сработает, потому что Firebase не допустит двух свойств с подстановочными знаками.

person Alex    schedule 22.03.2017