Получение ошибки 500 из запроса Firestore - - PullRequest
0 голосов
/ 05 мая 2020

Проблемы с Firestore на NodeJS (функции). У меня есть API со следующим:

export const getPost = (req: any, res: any): any => {
  let postData: any = {};
  postData.postId = req.params.postId;
  db.collection("posts").doc(`${req.params.postId}`)
    .get()
    .then((doc) => {
      if (!doc.exists) {
        return res.status(404).send({ error: "Post not found", success: false });
      }
      if( doc.data() && postData.postId)
      {
        postData = doc.data();
      postData.postId = req.params.postId;
      let commentsRef = db.collection("comments");
      return commentsRef.orderBy("createdAt", "desc").where("postId", "==", req.params.postId).get();
      }

    })
    .then((data) => {

      if(data){
        postData.comments = [];
        data.forEach((doc: any): any => {
          postData.comments.push({ ...doc.data(), commentId: doc.id });
        });
      }
      return res.status(200).send({ data: postData, success: true });
    })
    .catch((err) => {
      res.status(500).send({ error: err, success: false });
    });
};

На данный момент комментариев нет. Есть посты. Тем не менее, я получаю сообщение об ошибке.

[Error: Request failed with status code 500]

Я что-то упустил? Сильно запутался, если честно.

Спасибо

1 Ответ

0 голосов
/ 06 мая 2020

А, исправлено!

Мой API возвращал код ошибки, но не содержимое сообщения об ошибке. Я создал коллекцию журналов firestore для журналов ошибок. При этом обнаружил, что ошибка была следующей:


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

...