【问题标题】:Flutter: How to remove a specific array data in firebaseFlutter:如何在firebase中删除特定的数组数据
【发布时间】:2020-04-03 17:36:15
【问题描述】:

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

我的数据库结构:

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

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    这将帮助您在 can_firestore 中添加和删除特定的数组数据。

    getPickUpEquipment(EquipmentEntity equipment) async{
    
    
    final equipmentCollection = fireStore.collection("equipments").doc(equipment.equipmentId);
    
    final docSnap=await equipmentCollection.get();
    
    List queue=docSnap.get('queue');
    
    if (queue.contains(equipment.uid)==true){
    
      equipmentCollection.update({
    
        "queue":FieldValue.arrayRemove([equipment.uid])
    
      });
    
    }else{
    
    
      equipmentCollection.update({
    
        "queue":FieldValue.arrayUnion([equipment.uid])
    
      });
    
    }
    

    }

    例子

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        注意:对于此方法,您需要要删除的元素的文档 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) })
        

        【讨论】:

        • 同理,反之如何?也就是说,如何将单个元素添加到 firebase 中的现有数组?谢谢
        • @KrishnaShetty 使用 FieldValue.arrayUnion(val)
        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2020-08-11
          • 2019-09-12
          • 2020-06-06
          • 2019-01-24
          • 2019-10-19
          • 2017-02-01
          • 1970-01-01
          • 2021-04-18
          相关资源
          最近更新 更多