Join Angularfire2 lists

I am trying to create an infinite scroll list using the below function which gets the next 20 records each time it is called. However, I’m having some problems combining the old and new results into one observable list.

The final list needs to be observable so I can update a button when the user favourites a post. I have looked into various ways using rxjs but I am unable to get it to work.

I have been able to join the lists, but whenever I loaded more posts the observable was lost and the favourites button was no longer updated.

getPosts(limit, lastId) {
    return this.db.list("/reasons", (ref) => ref.orderByKey().endAt(lastId).limitToLast(limit) ).snapshotChanges()
    .pipe(
      map((data: any[]) => {
        return data
          .map((data) => {
            const $key = data.payload.key;
            const item = { $key, ...data.payload.val() };
            return item;
          })
      })
    );
  }