无法从Firebase Firestore检索数据

时间:2020-08-01 22:21:57

标签: javascript firebase google-cloud-firestore nosql

我已成功将数据保存到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);
      });

这是数据库

enter image description here

编辑:我发现,要访问所有文档,您必须采用这种方式。

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 个答案:

答案 0 :(得分:1)

好的,所以我找到了解决方法。

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