Firebase 扑动firestore,在数组中添加新对象
我有一个对象数组,我想在用户在数组中输入新数据时添加新对象Firebase 扑动firestore,在数组中添加新对象,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我有一个对象数组,我想在用户在数组中输入新数据时添加新对象 Firestore.instance.collection(city).document('Attractions').updateData( "data", FieldValue.arrayUnion(obj) ); 这显示了错误,如何使用颤振实现这一点?正确的格式是: Firestore.instance.collection(city).
Firestore.instance.collection(city).document('Attractions').updateData(
"data", FieldValue.arrayUnion(obj)
);
这显示了错误,如何使用颤振实现这一点?正确的格式是:
Firestore.instance.collection(city).document('Attractions').updateData({"data": FieldValue.arrayUnion(obj)});
updateData
将Map
作为数据
在您的代码中,您使用的是
,
作为键值之间的分隔符,而它应该是:
@anmol.majhail's是正确的,但要解决@Sami Ullah的问题,您必须首先创建一个列表,并将对象添加到列表中,如下所示:
var list = [objectBeingAdded];
Firestore.instance.collection('city').document('Attractions').updateData({"data": FieldValue.arrayUnion(list)});
这是我构建的一个工作函数,它将新映射添加到Firestore服务类中的数组中。我正在使用Json Serializable注释我的所有模型类。userTemplateSections是我的userTemplate firestore文档中的一个数据字段。我将userTemplate作为“addUserTemplateSection”函数的构造函数,以确保我正在编辑正确的文档 我还添加了从firestore文档数组中删除地图的功能 '''
Future addUserTemplateSection(
{UserTemplate UserTemplate,字符串标题,字符串摘要})异步{
试一试{
最终用户模板节用户模板节=
UserTemplateSection(标题:标题,摘要:摘要);
等待!
.document(FirestorePath.userTemplate(uid,userTemplate.id))
更新数据(
{
“userTemplateSections”:
FieldValue.arrayUnion([userTemplateSection.toJson()])
},
);
}捕获(e){
印刷品(e);
}
}
'''
'''
Future deleteUserTemplateSection({
用户模板用户模板,
UserTemplateSection UserTemplateSection,
})异步的{
试一试{
等待!
.document(FirestorePath.userTemplate(uid,userTemplate.id))
更新数据(
{
“userTemplateSections”:
FieldValue.arrayRemove([userTemplateSection.toJson()])
},
);
}捕获(e){
印刷品(e);
}
}
''”空安全代码:
假设这是您要添加的数据
Map someData={
"福":1,,
“酒吧”:没错,
};
- 添加具有唯一自动生成ID的数据:
var collection=FirebaseFirestore.instance.collection('collection'); 收集 .添加(某些数据) 。然后(())=>打印('Added')) .catchError((error)=>打印('Add failed:$error');
- 使用您自己的ID添加数据:
var collection=FirebaseFirestore.instance.collection('collection'); 收集 .doc('document_id')//打印('Added')) .catchError((error)=>打印('Add failed:$error');
- 将对象添加到数组:
var collection=FirebaseFirestore.instance.collection('collection'); 收集 .doc('document_id')//打印('Add failed:$error');
Future<void> addUserTemplateSection(
{UserTemplate userTemplate, String title, String summary}) async {
try {
final UserTemplateSection userTemplateSection =
UserTemplateSection(title: title, summary: summary);
await _firestore
.document(FirestorePath.userTemplate(uid, userTemplate.id))
.updateData(
{
'userTemplateSections':
FieldValue.arrayUnion([userTemplateSection.toJson()])
},
);
} catch (e) {
print(e);
}
}
Future<void> deleteUserTemplateSection({
UserTemplate userTemplate,
UserTemplateSection userTemplateSection,
}) async {
try {
await _firestore
.document(FirestorePath.userTemplate(uid, userTemplate.id))
.updateData(
{
'userTemplateSections':
FieldValue.arrayRemove([userTemplateSection.toJson()])
},
);
} catch (e) {
print(e);
}
}