Я бы лично использовал Firestore, но это также зависит от ваших потребностей и требований вашего приложения.Вы можете прочитать больше о различиях между БД Realtime и Firestore здесь .
Говоря о вашей модели данных, я не уверен в вашей реальной реализации (это не ясно из вопроса),но вам могут понадобиться две разные коллекции: products
и carts
.Каждый cart
документ будет иметь поле (массив / объект) со всеми идентификаторами продуктов в этой корзине.Таким образом, вы можете достичь согласованности данных, извлекая данные о продукте из фактического документа о продукте каждый раз, когда вам это нужно (например, при отображении корзины).
Поле totalPrice
в корзине, вероятно, не нужно и приводит к даннымнесоответствие, потому что вам нужно обновить его, когда продукты в корзине меняются.Может быть, лучше отобразить итоговую цену с помощью простой суммы.