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

时间:2018-03-05 21:42:55

标签: firebase google-cloud-firestore angular5 angularfire2

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  -->

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:0)

我必须在解决方案中添加firestore.batch() 我们的朋友让它工作。 这是我的第一项贡献。

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();
    }