如何在 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' 我正在使用颤振,我的数组是 List

以上是关于如何在 Flutter 的 Firestore 中向数组中添加相等的元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中读取 Firestore 时间戳

如何在 Flutter 的 Firestore 中向数组中添加相等的元素?

如何在 Flutter Firestore 提供程序中显示数据

如何从flutter中的firestore文档字段中获取数据?

如何使用 Firestore 在 Flutter 中搜索文本

如何使用 Flutter 在 Firestore 中删除集合中的所有文档