«admin.firestore.FieldValue.arrayUnion (...) не является функцией» при попытке сохранить данные в firestore как json - PullRequest
0 голосов
/ 08 апреля 2020

Я получаю сообщение об ошибке «admin.firestore.FieldValue.arrayUnion (...) не является функцией» при попытке сохранить данные в firestore как json, и я не могу понять, что я делаю неправильно.

Вот фрагмент кода того, что я делаю


  // eslint-disable-next-line handle-callback-err
            simpleParser(idHeader + all.body, (err, mail) => {
              // access to the whole mail object
              console.log(mail.subject);
              console.log(mail.html);

              var promises = [];
              var docRef = db.collection("Users").doc("6IzsLbD4r4R5RXdGB5BQy6xq8Dc2");

              promises.push(
                docRef.set(
                  {
                    Emails: admin.firestore.FieldValue.arrayUnion(
                      JSON.stringify()
                    )({
                      subject: mail.subject,
                      body: mail.text,
                      date: mail.date,
                      from: mail.from,
                    }),
                    //....
                  },
                  { merge: true }
                )
              );
              // eslint-disable-next-line promise/catch-or-return
              Promise.all(promises);
            });
          });


В основном я пытаюсь сохранить тему, тело, дату из json внутри писем, но я получаю это ошибка. Любая помощь будет признательна, так как эта сводит меня с ума, ха-ха

1 Ответ

0 голосов
/ 08 апреля 2020

Мне удалось исправить это с помощью


          promises.push(
                docRef.set(
                  {
                    Emails: admin.firestore.FieldValue.arrayUnion(
                      JSON.stringify({
                        subject: mail.subject,
                        body: mail.text,
                        date: mail.date,
                        from: mail.from,
                      })
                    ),
                    //....
                  },
                  { merge: true }
                )
              );
              // eslint-disable-next-line promise/catch-or-return
              Promise.all(promises);
            });
          });


, может быть, это поможет кому-то еще с этой проблемой, мои данные были вне JSON .stringify (). Убедитесь, что вы поместили свои данные в JSON .stringify (ЗДЕСЬ) =]

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