我在Firebase遇到了点麻烦。在这里我尝试删除/移除特定的数组数据。做这件事最好的方法是什么?Ps.我只是firebase/flutter的新手。我的数据库结构:
我试图从数据库结构中删除的数据(突出显示的一个):
bprjcwpo1#
首先创建一个空白列表,并在列表中添加要删除的元素,然后使用以下方法更新
注意:对于此方法,您需要要删除的元素的documennt 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) })
6ovsh4lw2#
**更新:**API有很大变化,但概念是一样的。
var collection = FirebaseFirestore.instance.collection('collection'); collection .doc('document_id') .update( { 'your_field': FieldValue.arrayRemove(elementsToDelete), } );
qqrboqgw3#
Firestore不提供按索引删除数组项的直接方法。在这种情况下,您必须读取文档,修改客户端内存中的数组,然后将字段的新内容更新回文档。如果您想使更新成为原子的,可以在事务中执行此操作。
mqxuamgl4#
这将帮助您在could_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]) }); }
}示例
2ledvvac5#
我也遇到过这个问题,下面是我如何解决的。我的案例描述我想从用户集合中删除购物车项目。下面是用户我的收藏看起来像
Future removeItemFromCart(OrderModel order) async { try { var userId = _firebaseAuth.currentUser?.uid; final collection = FirebaseFirestore.instance .collection(FirestoreConstants.pathUserCollection) .doc(userId); final docSnap = await collection.get(); List cart = docSnap.get('cart'); List item = cart .where((element) => element['orderId'].contains(order.orderId)) .toList(); collection.update({'cart': FieldValue.arrayRemove(item)}); Fimber.d("REMOVED unit ${order.unit?.unitName} $userId"); PaceUser? user = await getUserCart(); return user; } on FirebaseAuthException { rethrow; } return null;}
上面的代码片段为我解决了这个问题。
5条答案
按热度按时间bprjcwpo1#
首先创建一个空白列表,并在列表中添加要删除的元素,然后使用以下方法更新
注意:对于此方法,您需要要删除的元素的documennt id
6ovsh4lw2#
**更新:**API有很大变化,但概念是一样的。
qqrboqgw3#
Firestore不提供按索引删除数组项的直接方法。在这种情况下,您必须读取文档,修改客户端内存中的数组,然后将字段的新内容更新回文档。如果您想使更新成为原子的,可以在事务中执行此操作。
mqxuamgl4#
这将帮助您在could_firestore中添加和删除特定的数组数据。
}
示例
2ledvvac5#
我也遇到过这个问题,下面是我如何解决的。我的案例描述我想从用户集合中删除购物车项目。下面是用户我的收藏看起来像
上面的代码片段为我解决了这个问题。