I am saving data to firebase successfully
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);
});
But when i try to retrieve it firestore sends “No such document”. Trying to get the array of objects.
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);
});
Here is the db
Edit: I found out that in order to access all documents you have to do it this way.
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);
});
It goes into the then block but then querySnapshot.forEach doesnt run
Advertisement
Answer
Okay so i found the solution.
db.collection(`store/${userID}/products`)
.get()
.then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(doc.data());
});
});
