Firestore - Как проверить, существует ли документ на основе указанного поля c - PullRequest
0 голосов
/ 24 февраля 2020

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

Я пробовал оба snapshot.exists и делают c .exists, но, похоже, они демонстрируют странное поведение, когда console.log не запускается или коллекция все равно добавляет документ, даже если он уже существует.

const liker = db
  .collection("post")
  .doc('ubxL0nDCLHgrtEyQ5TEV')
  .collection("votes")
  .where("liker_id", "==", "user-TVe8mMRU47cnfO4xbl9yQEEE4XB3")
  .get()
  .then(snapshot => {
    snapshot.forEach(doc => {
      if (doc.exists) {
        console.log("exist");
      } else {
        console.log("not exist");
      }
    });
  })
  .catch(error => {
    console.log(error);
  });

1 Ответ

0 голосов
/ 24 февраля 2020

Вы бы попробовали код, подобный этому?

const liker = db
  .collection("post")
  .doc('ubxL0nDCLHgrtEyQ5TEV')
  .collection("votes")
  .where("liker_id", "==", "user-TVe8mMRU47cnfO4xbl9yQEEE4XB3")
  .get()
  .then(snapshot => {
    const data = snapshot.val();
    data.forEach(doc => {
      if (doc.exists) {
        console.log("exist");
      } else {
        console.log("not exist");
      }
    });
  })
  .catch(error => {
    console.log(error);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...