如何使用flutter删除Firestore文档中的字段。

时间:2018-08-01 12:41:37

标签: dart google-cloud-firestore flutter

我正在申请申请。

但是,我无法删除Firestore文档中的字段。 用其他语言,我知道可以使用FieldValue.delete()删除Firestore文档中的文件。

在Dart中,如何删除?

5 个答案:

答案 0 :(得分:4)

2018年10月更新:现在可以这样做:

要从Cloud Firestore文档中删除特定字段,请确保您使用的是插件版本0.8.0或更高版本。现在,例如,如果您有一个文档,其字段“ Desc”与包含一些文本。为了删除它。

Firestore.instance.collection('path').document('name').updateData({'Desc': FieldValue.delete()}).whenComplete((){
  print('Field Deleted');
});

这将从文档“名称”中删除“ Desc”字段

答案 1 :(得分:2)

我认为以标准的,非骇客的方式,目前这是不可能的。 Flutter中有一个未解决的问题https://github.com/flutter/flutter/issues/13905,必须首先解决。

答案 2 :(得分:1)

这里是在Field Path中编程时删除Flutter/Dart的官方解决方案

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'
       }
   }
}

答案 3 :(得分:0)

如果您有嵌套字段,请使用“。” (点)表示法来指定字段。

例如,如果您的数据是嵌套的Map,那么这很方便。

Firestore.instance.collection('path').document('name').update({'address.town': FieldValue.delete()}).whenComplete((){
  print('Field Deleted');
});

答案 4 :(得分:0)

获取 DocumentReference,使用具有要删除的键和值 update 的映射调用 FieldValue.delete()

var collection = FirebaseFirestore.instance.collection('collection');
collection
  .doc('document_id')
  .update({
    'field_to_delete': FieldValue.delete(),
    }
);