发布于 2021-11-15 13:59:31
看起来你会想要添加一些类似的东西到Firestore的映射数组中。基于这另一个thread,它是可以做到的,不需要太多的努力。我已经确认它在我的测试Firestore上工作正常,并使用了以下代码:
//Adding new array of maps
Map<String, dynamic> user1 = {"firstName": "Jane", "lastName": "Smith"};
Map<String, dynamic> user2 = {"firstName": "John", "lastName": "Doe"};
FirebaseFirestore firestore = FirebaseFirestore.instance;
firestore
.collection('testMapArray')
.doc('test1')
.update({
'array1': [user1, user2]
})
.then((value) => print("Updated"))
.catchError((error) => print("Failed"));
这是它在Firestore浏览器中的外观:
您还可以使用FieldValue.arrayUnion()
function将其他值附加到数组中,而无需更改现有值:
//Adding additional elements to the array of maps
Map<String, dynamic> user1 = {"firstName": "Jane", "lastName": "Smith"};
Map<String, dynamic> user2 = {"firstName": "John", "lastName": "Doe"};
Map<String, dynamic> user3 = {"firstName": "Foo", "lastName": "Bar"};
FirebaseFirestore firestore = FirebaseFirestore.instance;
firestore
.collection('testMapArray')
.doc('test1')
.update({
'array1': FieldValue.arrayUnion([user3])
})
.then((value) => print("Updated"))
.catchError((error) => print("Failed"));
此代码段仅将第三个用户添加到现有的映射数组中:
https://stackoverflow.com/questions/69965211
复制