【发布时间】:2019-01-03 11:11:38
【问题描述】:
我有一个关于 Firestore 和云功能的问题。
假设我有 2 个收藏: 产品和reuse_shopping_carts。
我的reuse_shopping_cart 文档包含许多具有所有属性(id、名称、价格、href)的产品。
现在我希望,如果我在 products collection 中更改特定产品的价格,云功能将在所有reuse_shopping_cart 文档上运行,并且在每个包含特定产品的文档中都会更改价格。
谁能解释我怎么做? 或者什么是正确的方法?
我知道我可以在reuse_shopping_cart 中仅存储产品ID 并在客户端获取更新的产品数据,但是对于一个reuse_shopping_cart 中包含100 个产品的列表,每次我想阅读购物清单时都需要100 个单独的查询,而改变产品价格的情况很少见,所以我认为这是一种更好的方法。
如果您有不同的想法,我会很高兴听到... 谢谢!
【问题讨论】:
-
如果价格变化不如读取购物车常见,那么您将价格复制到购物车中将为您节省 IO 操作。事实上,我什至不确定您是否应该更新所有购物车中的价格,因为价格可能在用户将商品添加到购物车时已经确定。对于所有选项,请在此处查看我的答案:stackoverflow.com/questions/30693785/…
-
嗨弗兰克,在正常的购物车中你是对的,但这是对用户永久保留的重复使用购物车,它是新购物车的起点,因此价格需要随着时间的推移而变化。我在firebase doc中阅读了“事务和批量写入”,但它最多只能包含500个文档......所以这是一个问题,因为一段时间后我将拥有更多的500个重用购物清单。有什么建议吗?
-
嗯,好的。在这种情况下,这是有道理的。我的链接答案中的选项保持不变,您从 Cloud Functions 更新它们的方法对我来说听起来很有效。
标签: firebase google-cloud-firestore google-cloud-functions