Неправильное использование типа «объект» в качестве аргумента Firestore - PullRequest
1 голос
/ 11 июня 2019

Я добавляю данные в мою коллекцию Firestore с помощью node-red-contrib-cloud-firestore . Все шло хорошо, пока я не решил добавить в мои данные вложенный массив:

{ firstname: 'John',
  contact:
   { name: 'Jane Doe',
     company: 'Inc',
     mail: 'jdoe@inc.com' },
  name: 'Doe',
  email: 'johndoe@inc.com' }

Код в модуле идет

this.firestore.collection(col).add(payload)

Я дважды проверил полезную нагрузку, все точно так же, как указано выше, но ошибка показывает

Error: Value for argument "data" is not a valid Firestore document. Invalid use of type "object" as a Firestore argument (found in field contact).

Есть ли уловка, которую я должен знать о вложенных объектах?

Спасибо

Ответы [ 2 ]

2 голосов
/ 12 июня 2019

На самом деле проблема возникает из-за функций NodeRED, выполняющихся на виртуальной машине и копирующих все прототипы, что приводит к ошибке строгого равенства.

Обходной путь - создать объект вне функций NodeRED. Более подробная информация по NodeRED ведет здесь

0 голосов
/ 11 июня 2019

Если вы пытаетесь добавить вложенную карту, а не вложенный массив, который поддерживается Firestore.

Вы уверены, что поле 'contact' не является undefined при попытке установить документ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...