Получение данных в списке из таблицы базы данных Firebase - PullRequest
0 голосов
/ 30 июня 2018

В моей базе данных Firebase есть таблица профилей, которая выглядит следующим образом enter image description here

Я пытаюсь получить определенные значения из этой таблицы для каждого экземпляра профиля и вывести их в пользовательском интерфейсе. Я нашел другой пост переполнения стека, и решение, которое работало для них, было таким ...

вот файл home.ts (здесь я покажу всех пользователей)

import { Component } from '@angular/core';
import { NavController, ToastController, NavParams } from 'ionic-angular';
import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFireDatabase, AngularFireObject } from 'angularfire2/database';
import { Profile } from '../../models/profile';
import { Observable } from 'rxjs/Observable';
import { HttpClient } from'@angular/common/http';

import firebase from 'firebase';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  profiles:Observable<any>;
  constructor(public http: HttpClient, private toast: ToastController, public afDatabase: AngularFireDatabase, private afAuth: AngularFireAuth, public navCtrl: NavController, public navParams: NavParams) {
    let profiles = this.afDatabase.list('profile').valueChanges();
  }
  }

А затем в файле home.html я пытаюсь отобразить его следующим образом.

<ion-list>
      <ion-item *ngFor="let profile of profiles | async">
        <p>{{profile.bandName}}</p>
        <p>{{profile.bandHandle}}</p>
      </ion-item>
  </ion-list>

Я получаю 0 ошибок, но абсолютно ничего не заполняется. Никакие значения не отображаются в пользовательском интерфейсе! Любые идеи здесь о том, что может пойти не так?

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Вы пытаетесь сохранить значение в переменной области действия блока profile. Переменная не будет доступна в html таким образом.

export class HomePage {
  public prolfies: any;

  constructor(public http: HttpClient, private toast: ToastController, public afDatabase: AngularFireDatabase, private afAuth: AngularFireAuth, public navCtrl: NavController, public navParams: NavParams) {
    afDatabase.list('profile')
      .valueChanges()
      .subscribe((data) => {
        this.profile = data;
      });
  }
}
0 голосов
/ 30 июня 2018

Не пробовал, но я думаю, что вы должны подписаться на свой список.

Попытка:

let profiles = this.afDatabase.list('profile').valueChanges()
   .subscribe(value => {
      this.profiles = value;
   })

Если это не сработало, можете ли вы сделать это в ngOnInit ()

ngOnInit(
   console.log(this.profiles)
)

А затем вставьте сюда свой результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...