如何在Firestore中的文档内的相同字段中保留\ add \ update多个值

时间:2018-01-15 18:51:42

标签: javascript firebase google-cloud-firestore

This is my database

我需要将Order:1.1234的值更改为Order:1.1234,2.1254,... etc

2 个答案:

答案 0 :(得分:0)

Cloud Firestore中没有多值字段的概念。如果要在单个字段中存储多个值,则必须自己编写编码/解码。

这意味着您首先需要获取字段的当前值,将新订单附加到该字段,然后将结果写回数据库。为此,您需要use a transaction(),以确保多个用户不会覆盖彼此的更改。

答案 1 :(得分:0)

您可以创建一个名为' Orders'的字段。这是一个基本的订单号数组,然后在获取doc()并解析数据时获取数组。

作为一个例子,我会像这样存储订单:

  [
    { type: 'Order Type 1', number: 1.234 },
    { type: 'Order Type 2', number: 6.745 },
    { type: 'Order Type 3', number: 1.345 },
    { type: 'Order Type 1', number: 4.556 }
  ]

使用Firestore还可以在标记为orders的文档中嵌套另一个集合。然后,当您调用此集合时,您将使用snapshotchanges()并映射数据并在单个Firestore调用中获取嵌套的observable。这样,订单有自己的订阅,以防它们被特别更改,并且原始文档的任何内容都没有改变。如果您需要一些如何实现此目的的示例,请告诉我们。