Невозможно положить sh мои данные в пустой массив с помощью Google Fire Base - PullRequest
0 голосов
/ 03 февраля 2020

Я использую Google Firebase и узел.

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

У меня есть коллекция в Google Firebase под названием screams, и у меня также есть коллекция под названием comments , Одно из полей в моей коллекции комментариев называется screamId. если идентификатор в этом поле совпадает с идентификатором идентификатора scream, который я использую в своем запросе, он должен поместить данные этого документа в пустой массив, который я установил.

в Postman, он успешно возвращая мне часть данных, которую я запросил (отдельный документ scream), но он не выталкивает документ комментариев из коллекции комментариев в пустой массив, который я установил. Вместо этого я просто возвращаю пустой массив

Вот что я получаю от Почтальона:

{ 
    "body": "ice scream",
    "createdAt": "2020-01-27T17:56:11.885Z",
    "userHandle": "joel",
    "screamId": "cdQnSrHtsRzYmKL6dSoS",
    "comments": []
} 

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

вот код моей функции:

exports.getScream = (req, res) => {
let screamData = {};


db.doc(`/screams/${req.params.screamId}`)
.get()
.then(doc => {
  if (!doc.exists) {
    return res.status(404).json({ error: "Scream not found" });
  }
  screamData = doc.data();
  screamData.screamId = doc.id;
  return db
    .collection("comments")
    .where("screamId", "==", req.params.screamId)
    .get();
})
.then(data => {
  screamData.comments = [];
  data.forEach(doc => {
    screamData.comments.push(doc.data());
  });
  return res.json(screamData);
})
.catch(err => {
  console.error(err);
  res.status(500).json({ error: err.code });
});
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...