Flutter:如何删除 firebase 中的特定数组数据

Lix*_*Lix 6 firebase flutter google-cloud-firestore

我现在在 firebase 中遇到问题。我尝试删除/删除特定数组数据的地方。最好的方法是什么?附言。我只是 firebase/flutter 的新手。

我的数据库结构:

在此处输入图片说明

我试图在我的数据库结构中删除的数据(突出显示的一个):

在此处输入图片说明

小智 11

首先创建一个空白列表并在列表中添加要删除的元素,然后使用以下方法更新

注意:对于此方法,您需要要删除的元素的文档 ID

var val=[];   //blank list for add elements which you want to delete
val.add('$addDeletedElements');
 Firestore.instance.collection("INTERESTED").document('documentID').updateData({

                                        "Interested Request":FieldValue.arrayRemove(val) })
Run Code Online (Sandbox Code Playgroud)

  • @KrishnaShetty 使用 `FieldValue.arrayUnion(val)` (3认同)

Cop*_*oad 6

更新: 尽管概念相同,但 API 发生了很大变化。

var collection = FirebaseFirestore.instance.collection('collection');
collection 
  .doc('document_id')
  .update(
  {
    'your_field': FieldValue.arrayRemove(elementsToDelete),
  }
);
Run Code Online (Sandbox Code Playgroud)


Dou*_*son 3

Firestore 不提供按索引删除数组项的直接方法。在这种情况下,您要做的就是读取文档,修改客户端内存中的数组,然后将字段的新内容更新回文档。如果您想使更新原子化,您可以在事务中执行此操作。