使用Firestore从Angular 6项目中的可观察数组中删除一些项

时间:2018-08-04 10:23:33

标签: angular typescript observable

我在理解Angular(或打字稿)中Observables的概念时遇到麻烦,并且正在寻找可以帮助我更好地理解的技巧。

例如,我有以下情况:我从Firestore数据库获取数据。我有流程,每个流程都将每个步骤的步骤关联到一个单独的集合中。到目前为止,可以正常显示数据。

现在,当我删除一个流程项目时,我也想删除相关的步骤。

这是我到目前为止的代码:

以下方法有效:

  getProcessSteps(sid:string): Observable<Step[]> {
    return this.steps.pipe(map(steps => steps.filter(st => st.processid == sid)));
  }

这也可以工作(除了对deleteProcessSteps方法的调用之外):

  deleteProcess(id) {
    // delete associated steps
    this.deleteProcessSteps(id);

    this.processDoc = this.afs.doc<Process>(`processes/${id}`);
    this.processDoc.delete();
  }

这是我想了解的内容:

 deleteProcessSteps(processid) {
   let stepdocs = this.getProcessSteps(processid);

   //Delete the steps
   for (let s of stepdocs) {         // <-- not working
     this.stepDoc = this.afs.doc<Step>(`steps/${s.id}`);
     this.processDoc.delete();
   }
 }

我收到错误消息:类型'Observable'不是数组类型或字符串类型。尽管我觉得这不太合逻辑,但我必须接受。

任何有关如何解决此问题的建议都将受到欢迎!

0 个答案:

没有答案