title: What is the RxJS way of working with snapshotChanges()?
body: <p>So I have an auth.service.ts, crud.service.ts, and a components.ts. While the code I have written works, it happens to be a combination of multiple tutorials and docs. I was wondering how the code below can be combined to make it neat and all logic happen only in crud.service.ts using rxjs operators. The end result would be returning one observable of item collections fully formatted.</p>
  <pre><code>crud.service.ts 
  
   getTasks() {
     return this.auth.user$.pipe(
      switchMap((value: any) =&gt; this.db.collection(`users/${value.uid}/tasks`).snapshotChanges())
    )
  }
  </code></pre>
  <pre><code>component.ts
  
  ngOnInit(): void {
      this.fireService.getTasks().subscribe((a: any) =&gt; {
        this.tasks = []
        a.forEach((b: any) =&gt; {
          let item: any = b.payload.doc.data();
          item.id = b.payload.doc.id;
          item.defaultState = true
          this.tasks.push(item)
        })
      })
  }
  </code></pre>