如何使用颤振删除 Firestore 文档中的字段
Posted
技术标签:
【中文标题】如何使用颤振删除 Firestore 文档中的字段【英文标题】:How to delete a field in Firestore document with flutter 【发布时间】:2019-01-09 00:59:09 【问题描述】:我正在制作一个 Flutter 应用程序。
但是,我无法删除 Firestore 文档中的字段。
在另一种语言中,我知道使用 FieldValue.delete()
删除 Firestorm 文档中的文件。
在 Dart 中,如何删除?
【问题讨论】:
【参考方案1】:在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'
【讨论】:
【参考方案2】:获取DocumentReference
,使用映射调用update
,其中包含要删除的键和值FieldValue.delete()
。
var collection = FirebaseFirestore.instance.collection('collection');
collection
.doc('document_id')
.update(
'field_to_delete': FieldValue.delete(),
);
【讨论】:
【参考方案3】:如果您有嵌套字段,请使用“.” (点)表示法来指定字段。
例如,如果您的数据是嵌套的 Map,那么这很方便。
Firestore.instance.collection('path').document('name').update('address.town': FieldValue.delete()).whenComplete(()
print('Field Deleted');
);
【讨论】:
【参考方案4】:2018 年 10 月更新:现在可能:
为了从 Cloud Firestore 文档中删除特定字段 - 请确保您使用的是插件版本 0.8.0 或更高版本。 现在例如,如果您的文档具有“Desc”字段包含一些文本。为了删除它。
Firestore.instance.collection('path').document('name').update('Desc': FieldValue.delete()).whenComplete(()
print('Field Deleted');
);
这将从文档“名称”中删除“描述”字段
【讨论】:
这个解决方案似乎不再起作用了,我用你的代码here提出了一个单独的问题【参考方案5】:我认为这在标准的、非 hacky 的方式中目前是不可能的。 Flutter 中有一个未解决的问题https://github.com/flutter/flutter/issues/13905,必须先解决。
【讨论】:
谢谢。这一次,我决定使用删除标志删除一个字段。 如何使用删除标志进行删除?? 哦,我真的不删除。如果删除标志为真,我只是忽略数据。 @PhuahYeeKeat以上是关于如何使用颤振删除 Firestore 文档中的字段的主要内容,如果未能解决你的问题,请参考以下文章