Немного слепое кодирование, но может ли это сработать?
В службе, использующей Rxjs, чтобы проверить, существует ли объект, и вернуть Observable результата.С изменениями снимка, чтобы значение могло динамически изменяться:
public callCheckFollow(followingID: string, followerID: string): Observable<boolean> {
return of(this.angularFirestore.collection('users/${followingID}/following').doc(followerID).snapshotChanges().take(1).do(d => d.payload.exists));
}
В компоненте TS просто возьмите наблюдаемое из службы.
export class ServiceTestComponent implements OnInit {
followState: Observable<boolean>;
constructor(private followService: ProfileFollowService) {
this.followState = this.followService.callCheckFollow('someID', 'someID');
}
}
А затем в html прослушивать асинхронно для изменений в последующем состоянии.
<div *ngIf="(followState | async)">
<p>hello Doc</p>
</div>
<div *ngIf="(!followState | async)">
<p>No doc</p>
</div>