【问题标题】:Firestore : problem while removing item from array of maps [duplicate]Firestore:从地图数组中删除项目时出现问题[重复]
【发布时间】:2020-06-16 10:52:47
【问题描述】:

从firestore中的map数组中删除索引中的项目的方法是什么?

我有一个地图数组,如图所示,我需要删除数组“cart”的索引。

我试过 arrayRemove() 但它不起作用。

【问题讨论】:

  • 你能分享一些代码吗?像这样 admin.firestore.FieldValue.arrayRemove({ count:'3', item_id:'123' })

标签: firebase flutter google-cloud-firestore


【解决方案1】:

您不能使用其索引删除数组项。这是有意的,因为可能有多个客户端添加/删除数组中的项目,这将更改索引。因此,您必须按值删除项目。更多详情here.

此外,如果您需要条件删除,例如“删除计数为 1 的所有项目”,那么您需要在客户端自己处理这种情况:获取数组,更新它,推回它。

【讨论】:

    【解决方案2】:

    根据您的要求,如果您可以将数据结构更改为映射而不是数组,那么您可以在特定键处删除。

    cart: {
      0: {count: 3...},
      1: {count: 1...} 
    }
    

    然后在你的客户端上(详情here):

    docRef.update.{['chat.' + index]: firebase.firestore.FieldValue.delete()};
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-12
      相关资源
      最近更新 更多