Не могу опубликовать в базе данных firebase - PullRequest
0 голосов
/ 09 июля 2019

Когда я пытаюсь опубликовать данные с почтальоном в firebase, я получаю эту ошибку: Ошибка: значение для аргумента «данные» не является допустимым документом Firestore. Невозможно использовать «undefined» в качестве значения Firestore (находится в теле поля).

Я проверил, и body и userHandle возвращаются как неопределенные, но я не знаю почему. С почтальоном я использую POST и в теле отправляю json вот так:

{
    "body": "scream 2",
    "userHandle": "user2"
}

как необработанный JSON (приложение / json)

const functions = require('firebase-functions');

const admin = require('firebase-admin');

let firebaseConfig = {
  apiKey: '*******',
  authDomain: '******',
  databaseURL: '*****',
  projectId: '*****',
  storageBucket: '****',
  messagingSenderId: '*****',
  appId: '*******'
};

admin.initializeApp(firebaseConfig);


exports.createScream = functions.https.onRequest((req, res) => {
  if (req.method !== 'POST') {
    return res.status(400).json({ error: 'Method not allowed' });
  }
  const newScream = {
    body: req.body.body,
    userHandle: req.body.userHandle,
    createdAt: admin.firestore.Timestamp.fromDate(new Date())
  };

  admin
    .firestore()
    .collection('screams')
    .add(newScream)
    .then(doc => {
      res.json({ message: `document ${doc.id} created successfully` });
    })
    .catch(err => {
      res.status(500).json({ error: 'something went wrong' });
      console.error(err);
    });
});

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Ладно, это немного странно, но в почтальоне тело было установлено на raw JSON (application / json), но я снова установил его на JSON (application / json) и теперь оно работает.

0 голосов
/ 10 июля 2019

В сообщении об ошибке говорится, что одно из полей, которые вы добавляете в документ Firestore, не определено:

  const newScream = {
    body: req.body.body,
    userHandle: req.body.userHandle,
    createdAt: admin.firestore.Timestamp.fromDate(new Date())
  };

Поскольку вы видите все переменные, значения которых мы не видим,мы не можем сказать, какой из них может быть неопределенным.Вам придется отладить это самостоятельно, чтобы выяснить, какой из них не определен, и изменить свой код, чтобы убедиться, что введенные данные верны.

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