如何在Firebase上同步的文档之间维护重复数据?

时间:2019-01-03 11:11:39

标签: firebase google-cloud-firestore google-cloud-functions

我有一个关于Firestore和云功能的问题。

假设我有2个收藏集: 产品和reuse_shopping_carts。

和我的repeat_shopping_cart文档包含许多具有其所有属性(id,名称,价格,href)的产品。

现在我希望,如果我在产品集合中更改特定产品的价格,则云功能将在所有use_shopping_cart文档上运行,并且在包含特定产品的每个文档中,它将更改价格。

有人可以解释我怎么做? 还是正确的方法呢?

我知道我只能在产品reuse_shopping_cart中存储产品并在客户端获取更新的产品数据,但是对于一个reuse_shopping_cart中的100种产品的列表,每次我要阅读购物清单时,都需要进行100次单独的查询,而更改产品的价格更为罕见,因此我认为这是一种更好的方法。

如果您有不同的看法,我会很高兴听到... 谢谢!

1 个答案:

答案 0 :(得分:0)

您可以像下面这样构造您的reuse_shopping_carts文档:

products: (map)   
  (product id)
    name:
    value:

例如:

Example document

然后查找价格变化时要更新的文档,您可以像这样查询:

firebase.firestore().collection('reuse_shopping_carts').where(`products.${productId}.price`, '>=', 0)