【问题标题】:Deleting a sub-collection in Firebase -Flutter在 Firebase -Flutter 中删除子集合
【发布时间】:2021-04-01 12:45:42
【问题描述】:

我有每个用户的任务子集合,我怎样才能删除任务,

CollectionReference users = FirebaseFirestore.instance.collection('users');
final FirebaseAuth _auth = FirebaseAuth.instance;
   

Future<void> deleteTask() {
    return users
        .doc(user.uid)
        .collection('Tasks').delete() ?? ??
        .then((value) => print("Tasks Deleted"))
        .catchError((error) => print("Failed to delete task: $error"));
  }

【问题讨论】:

  • 有什么问题?有没有错误
  • @MajidAli 你不能在集合引用上调用delete()

标签: firebase flutter google-cloud-firestore


【解决方案1】:

要使用 Cloud Firestore 删除集合或子集合中的所有文档,您可以使用 delete 方法迭代 DocumentReference:

CollectionReference users = FirebaseFirestore.instance.collection('users');

Future<void> deleteAllTaskDocs() {
  return users
    .doc(user.uid)
    .collection('Tasks')
    .get()
    .then((QuerySnapshot querySnapshot) {
        querySnapshot.docs.forEach((doc) {
            doc.reference.delete();
        });
    });
}

请记住:

  • 没有自动删除集合的操作。
  • 删除文档不会删除其子集合中的文档。
  • 如果您的文档具有动态子集合,则可能很难知道要删除给定路径的哪些数据。
  • 删除包含 500 多个文档的集合需要多次批量写入操作或数百次单次删除。

【讨论】:

    猜你喜欢
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 2020-11-29
    • 2021-07-07
    • 2020-08-28
    • 2022-10-04
    相关资源
    最近更新 更多