Моя цель - оптимизировать архитектуру моего приложения по стоимости при использовании Firebase Cloud Firestore.Я понимаю, что модель ценообразования Cloud Firestore основана на чтении / записи.Поэтому я рассматриваю следующую схему для оптимизации затрат.Я хочу знать, является ли это «наилучшей практикой» или анти-шаблоном.
Идея состоит в том, что всякий раз, когда я создаю новый документ для добавления в коллекцию, пользователь будет обновлять второй «главный документ».который содержит некоторое подмножество содержимого документа, а также то же самое из многих похожих документов от разных пользователей.
Затем, когда я иду за получением данных списка, вместо того, чтобы получать сбор и получать плату за каждый документ, прочитанный изколлекция (много чтений), вместо этого я получаю только главный документ (одно чтение).
В коде это будет выглядеть следующим образом.
Вместо этого:
db.collection("reviews")
.get()
.then(querySnapshot => {
querySnapshot.forEach(doc => {
// doc.data() is never undefined for query doc snapshots
console.log(doc.id, " => ", doc.data());
});
})
Я делаю это:
const docRef = db.collection("reviews").doc("MasterList");
docRef.get().then(doc => {
if (doc.exists) {
console.log("Document data:", doc.data());
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
})
Является ли это оптимальной с точки зрения затрат практикой?Или это анти-паттерн?