我刚刚在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面板中在线手动添加重复值(数据类型分别称为数组),但这些值已经以某种方式映射,删除了重复值。
有没有办法绕过这种行为,或者这是一个错误吗?
答案 0 :(得分:1)
根据the documentation here,数组并集将仅添加不存在的元素。因为您使用的Firestore函数仅旨在添加新的唯一值,所以它将以这种方式运行而不会被绕过。不过,您当然可以绕过此功能,但必须先调用文档,检索数组并在将其更新到Firestore之前附加它,然后才能这样做。
答案 1 :(得分:0)
使用
class _UpdateScreenState extends State<UpdateScreen> {
TextEditingController _txtnrp;
@override
void initState() {
_txtnrp = TextEditingController(text: "${widget.nrpUpdate}");
super.initState();
}
它可以不使用 FieldValue.arrayUnion
而工作