您似乎想要向 Firestore 添加类似于 Array of Maps 的内容。基于这个另一个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"));
这个 sn-p 只将第三个用户添加到现有的地图数组中: