Не удалось получить данные из firebase firestore - PullRequest
0 голосов
/ 02 августа 2020

Я успешно сохраняю данные в firebase


    const productsRef = db.collection("store").doc(userID).collection("products");

    productsRef
      .doc(productID)
      .set({
        userID: userID,
        productCatagory: productCatagory.value,
        productCode: productID,
        productName: productName.value,
        price: price.value,
        description: description.value,
        time: time,
      })
      .then(function () {
        console.log("Document successfully written!");
      })
      .catch(function (error) {
        console.error("Error writing document: ", error);
      });

Но когда я пытаюсь получить их, firestore отправляет «Нет такого документа». Пытаемся получить массив объектов.

db.collection("store")
      .doc(userID)
      .get()
      .then((doc) => {
        if (doc.exists) {
          console.log(doc.data());
        } else {
          // doc.data() will be undefined in this case
          console.log("No such document!");
        }
      })
      .catch(function (error) {
        console.log("Error getting document:", error);
      });

Вот db

введите описание изображения здесь

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

db.collection("store")
      .get()
      .then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
          // doc.data() is never undefined for query doc snapshots

          console.log(doc.data());
        });
      })
      .catch((e) => {
        console.log(e);
      });

Он переходит в блок then, но затем querySnapshot.forEach не запустить

1 Ответ

1 голос
/ 02 августа 2020

Хорошо, я нашел решение.

db.collection(`store/${userID}/products`)
      .get()
      .then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
          
          console.log(doc.data());
        });
      });
  

   
...