如何在 Flutter 的 Firestore 中向数组中添加相等的元素?
Posted
技术标签:
【中文标题】如何在 Flutter 的 Firestore 中向数组中添加相等的元素?【英文标题】:How do I add equal elements to an array in Firestore in Flutter? 【发布时间】: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 面板中在线手动添加重复值(数据类型分别称为数组)。
有没有办法绕过这种行为或者这是一个错误?
【问题讨论】:
【参考方案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以上是关于如何在 Flutter 的 Firestore 中向数组中添加相等的元素?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flutter 的 Firestore 中向数组中添加相等的元素?
如何在 Flutter Firestore 提供程序中显示数据
如何从flutter中的firestore文档字段中获取数据?