Доступ к дополнительной информации в наблюдаемой - База данных Firebase Realtime - PullRequest
0 голосов
/ 28 октября 2019

Я создаю список пользователей, используя приведенный ниже код, но я также хотел бы получить доступ к другому списку userStatus, который показывает статус для каждого пользователя. Как объединить оба?

  /**
   * @param  {string} id
   */
  setGuests(id: string): object {
    this.guestsRef = this.db.list<any>(`attending/${id}`, ref => ref.orderByChild('first_name'))
    return this.guests = this.guestsRef.snapshotChanges()
      .map(changes => {
        let guests = changes.map(c => ({ key: c.payload.key, ...c.payload.val() }))
        return guests
      })
  }

userStatus 
  - userKey
  -- status: offline or online

Я пытался использовать метод, чтобы получить статус пользователя, но он зависает.

 <ng-container *ngFor="let guest of guests | async">
    <ion-item class="guest-list"
      *ngIf="checkDisabled(guest) && guest.first_name">

      <ion-thumbnail (click)="userModal(guest)" item-start>
        <img [src]="thumb(guest)">
      </ion-thumbnail>

      <p (click)="userModal(guest)">
        {{(guest)?.first_name}} {{(guest)?.last_name}}
        <ion-icon *ngIf="setStatus(guest?.key)" style="color: lightgreen; float: right;"
          name="radio-button-on"></ion-icon>
      </p>

    </ion-item>
  </ng-container>


  /**
   * @param  {} uid
   */
  setStatus(uid) {
    this.statusSub = this.db.object(`userStatus/${uid}/status`)
      .valueChanges()
      .subscribe(status => {
        if (status === 'online') {
          return true
        }
      })
  }
...