Arrays 如何在Flatter中向Firestore中的数组添加相等的元素?
我刚刚在《颤栗》中发现了这一点Arrays 如何在Flatter中向Firestore中的数组添加相等的元素?,arrays,firebase,firebase-realtime-database,flutter,google-cloud-firestore,Arrays,Firebase,Firebase Realtime Database,Flutter,Google Cloud Firestore,我刚刚在《颤栗》中发现了这一点 List<int> values = [1,2,3,1,2,3]; Firestore.instance.path.updateData({"values": FieldValue.arrayUnion(values)}); 显然,这些值是以某种方式映射的,消除了重复值,尽管我可以在Firebase面板中在线手动添加重复值(数据类型分别称为array) 是否有办法绕过此行为或这是一个bug?根据,array union将只添加不存在的元素。由于您使用
List<int> values = [1,2,3,1,2,3];
Firestore.instance.path.updateData({"values": FieldValue.arrayUnion(values)});
显然,这些值是以某种方式映射的,消除了重复值,尽管我可以在Firebase面板中在线手动添加重复值(数据类型分别称为array)
是否有办法绕过此行为或这是一个bug?根据,array union将只添加不存在的元素。由于您使用的Firestore函数仅用于添加新的唯一值,因此它将以这种方式运行,而不会被绕过。不过,您当然可以绕过此函数,但必须首先调用文档,检索数组,并在将其更新到Firestore之前附加它。使用
List<int> values = [1,2,3,1,2,3];
Firestore.instance.path.setData({"values": values});
列表值=[1,2,3,1,2,3];
Firestore.instance.path.setData({“values”:values});
它可以在不使用FieldValue的情况下工作。arrayUnion它不工作,它说“参数类型集不能分配给参数类型'Map',我使用的是颤振,我的数组是列表
List<int> values = [1,2,3,1,2,3];
Firestore.instance.path.setData({"values": values});