从Firebase数据库表中检索列表中的数据

时间:2018-06-30 03:12:09

标签: javascript angular firebase ionic-framework firebase-realtime-database

我的Firebase数据库中有一个Profile表,看起来像这样 polyfill

我要尝试的是从此表中为每个配置文件实例获取某些值,并将其在UI中列出。我发现了另一个堆栈溢出帖子,适用于他们的解决方案是这样的...

这是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个错误,但绝对没有任何错误。 UI上没有显示任何值!这里有什么想法可能出什么问题?

2 个答案:

答案 0 :(得分:2)

您正试图将值存储在块作用域变量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;
      });
  }
}

答案 1 :(得分:0)

没有尝试过,但是我认为您必须订阅您的列表。

尝试:

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

如果它不起作用,可以在ngOnInit()中做到吗

ngOnInit(
   console.log(this.profiles)
)

然后将您的结果粘贴到此处