我正在开发一个简单的预订应用程序。 对于每个预订的时段,我都有一个取消按钮,按下时应从集合中删除约会。
Future deleteAppt() async {
QuerySnapshot querySnapshot =
await FirebaseFirestore.instance.collection("client_bookings").get();
for (int i = 0; i < querySnapshot.docs.length; i++) {
var a = querySnapshot.docs[i];
final collection =
FirebaseFirestore.instance.collection('client_bookings');
collection
.doc(a.id) // <-- Doc ID to be deleted.
.delete() // <-- Delete
.then((_) => print('Deleted'))
.catchError((error) => print('Delete failed: $error'));
print(a.id);
}
}
到目前为止,这是我的代码。但是,当单击该按钮时,所有约会都将被删除。你能给我任何建议我该如何解决这个问题? 此外,我正在使用 StreamBuilder 和 ListView.builder 遍历集合并在容器中显示每个约会。
如果你想删除一个特定的约会,你应该通过约会ID。
Future<void> deleteAppt(String apptId) async {
final collection = FirebaseFirestore.instance.collection('client_bookings');
try {
await collection.doc(apptId).delete();
print('Deleted');
} catch (error) {
print('Delete failed: $error');
}
}
您正在遍历每个文档并删除该文档
for (int i = 0; i < querySnapshot.docs.length; i++) {}
删除 for 语句