Для страницы со списком продуктов я смог создать все oop, чтобы извлечь каждый документ из базы данных, в которой отображаются все продукты. Однако для отдельной страницы сведений о продукте мне нужна только информация, относящаяся к этому конкретному продукту.
Приведенный ниже код извлекает правильные данные для отдельных продуктов, но не очень DRY. То, как это написано, означает, что каждый раз, когда я добавляю новый продукт в базу данных Firestore, мне приходится копировать и исправлять большой кусок JS. Нечто, что кажется неправильным. Есть ли способ сделать его более DRY?
// RETRIEVES PRODUCT ONE DATA
var docRefOne = db.collection("Products").doc("0nJqPHZzziVEdP3SiFGD");
const productOne = document.querySelector('#productOne');
docRefOne.get().then(function(doc) {
if (doc.exists) {
let productTitle = document.createElement('h2');
productTitle.textContent = doc.data().title;
productOne.appendChild(productTitle);
} else {
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});
// RETRIEVES PRODUCT TWO DATA
var docRefTwo = db.collection("Products").doc("gB8t750hIUVyaC63k8GH");
const productTwo = document.querySelector('#productTwo');
docRefTwo.get().then(function(doc) {
if (doc.exists) {
let productTitle = document.createElement('h2');
productTitle.textContent = doc.data().title;
productTwo.appendChild(productTitle);
} else {
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});