【发布时间】:2019-01-09 00:59:09
【问题描述】:
我正在制作一个 Flutter 应用程序。
但是,我无法删除 Firestore 文档中的字段。
在另一种语言中,我知道使用 FieldValue.delete() 删除 Firestorm 文档中的文件。
在 Dart 中,如何删除?
【问题讨论】:
标签: dart google-cloud-firestore flutter
我正在制作一个 Flutter 应用程序。
但是,我无法删除 Firestore 文档中的字段。
在另一种语言中,我知道使用 FieldValue.delete() 删除 Firestorm 文档中的文件。
在 Dart 中,如何删除?
【问题讨论】:
标签: dart google-cloud-firestore flutter
在Flutter/Dart中编程时删除Field Path的官方解决方案
Firestore 集合示例如下所示:
{
'path': {
'name': {
'title': 'my title'
'description': 'my description',
}
}
}
要删除description 字段,您可以这样做:
Firestore.instance.collection('path').document('name').set(
{'description': FieldValue.delete()},
SetOptions(
merge: true,
),
)
集合将如下所示:
{
'path': {
'name': {
'title': 'my title'
}
}
}
【讨论】:
获取DocumentReference,使用映射调用update,其中包含要删除的键和值FieldValue.delete()。
var collection = FirebaseFirestore.instance.collection('collection');
collection
.doc('document_id')
.update({
'field_to_delete': FieldValue.delete(),
}
);
【讨论】:
如果您有嵌套字段,请使用“.” (点)表示法来指定字段。
例如,如果您的数据是嵌套的 Map,那么这很方便。
Firestore.instance.collection('path').document('name').update({'address.town': FieldValue.delete()}).whenComplete((){
print('Field Deleted');
});
【讨论】:
2018 年 10 月更新:现在可能:
为了从 Cloud Firestore 文档中删除特定字段 - 请确保您使用的是插件版本 0.8.0 或更高版本。 现在例如,如果您的文档具有“Desc”字段包含一些文本。为了删除它。
Firestore.instance.collection('path').document('name').update({'Desc': FieldValue.delete()}).whenComplete((){
print('Field Deleted');
});
这将从文档“名称”中删除“描述”字段
【讨论】:
我认为这在标准的、非 hacky 的方式中目前是不可能的。 Flutter 中有一个未解决的问题https://github.com/flutter/flutter/issues/13905,必须先解决。
【讨论】: