如何使用 Angular 5 中的批量写入从 Cloud Firestore 删除多个文档

问题描述 投票:0回答:2

firebase cloud firestore批量写入中引用:

如果您不需要阅读操作集中的任何文档,您可以 可以作为单个批处理执行多个写入操作,其中包含 set()、update() 或delete() 操作的任意组合。一批 写入以原子方式完成,并且可以写入多个文档。

如何使用 Angular 5 删除集合中的所有文档?

// Get a new write batch
var batch = db.batch();


// Delete the city 'LA'
var laRef = db.collection("cities").doc("LA");
batch.delete(laRef);



<!--  Delete All Tasks  -->
    <button 
      mat-button mat-icon-button 
      (click)="tasksService.deleteAllTasks(openSnackBar())" 
      matTooltip="Delete All Tasks" 
      class="toolbar-btn" 
      [disabled]="(tasksService.tasks$ | async)?.length == 0">
      <i class="fa fa-trash"></i>
    </button>
<!-- Delete All Tasks  -->
firebase google-cloud-firestore angular5 angularfire2
2个回答
4
投票

就这么简单,快来试试吧!

private async deleteCollection(path: string) {
    const batch = db.batch();
    const qs = await db.collection(path).ref.get();
    qs.forEach(doc => batch.delete(doc.ref));
    return batch.commit();
}

4
投票

我必须将 firestore.batch() 添加到解决方案中 我们的 coturiv 朋友让它发挥作用。 这是我的第一个贡献。

private async deleteCollection(path: string) {
        const batch = db.firestore.batch();
        const qs = await db.collection(path).ref.get();
        qs.forEach(doc => batch.delete(doc.ref));
        return batch.commit();
    }
© www.soinside.com 2019 - 2024. All rights reserved.