【问题标题】:How do I add equal elements to an array in Firestore in Flutter?如何在 Flutter 的 Firestore 中向数组中添加相等的元素?
【发布时间】:2019-12-16 19:11:43
【问题描述】:

我刚刚在 Flutter 中发现了这一点

List<int> values = [1,2,3,1,2,3];
Firestore.instance.path.updateData({"values": FieldValue.arrayUnion(values)});

Firestore 数组中的结果

(Firestore Array) [1,2,3]

显然这些值以某种方式映射,删除了重复值,尽管我可以在 Firebase 面板中在线手动添加重复值(数据类型分别称为数组)。

有没有办法绕过这种行为或者这是一个错误?

【问题讨论】:

    标签: arrays firebase firebase-realtime-database flutter google-cloud-firestore


    【解决方案1】:

    根据the documentation here,数组联合只会添加不存在的元素。因为您使用的 Firestore 函数旨在仅添加新的唯一值,所以它会以这种方式运行而不会被绕过。不过,您当然可以绕过此函数,但必须先调用文档、检索数组并在将其更新到 Firestore 之前附加它。

    【讨论】:

      【解决方案2】:

      使用

      List<int> values = [1,2,3,1,2,3];
      Firestore.instance.path.setData({"values": values});
      

      它不使用 FieldValue.arrayUnion

      【讨论】:

      • 它不起作用,它说“参数类型 Set 不能分配给参数类型 'Map' 我正在使用颤振,我的数组是 List
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      相关资源
      最近更新 更多