【发布时间】:2018-12-25 20:31:41
【问题描述】:
我在从 Firebase 获取数据(在本例中为用户列表)时遇到了一些问题。
版本信息
Angular 版本 6
Firebase 4.13.1
Angualrfire2 5.0.0-rc.7.2
浏览器中出现错误
DashboardComponent.html:1 错误类型错误: this.clientService.getClients(...).subscribe 不是函数 在 ClientsComponent.push../src/app/components/clients/clients.component.ts.ClientsComponent.ngOnInit (clients.component.ts:19) 在 checkAndUpdateDirectiveInline (core.js:8939) 在 checkAndUpdateNodeInline (core.js:10203) 在 checkAndUpdateNode (core.js:10165) 在 debugCheckAndUpdateNode (core.js:10798) 在 debugCheckDirectivesFn (core.js:10758) 在 Object.eval [作为 updateDirectives] (DashboardComponent.html:1) 在 Object.debugUpdateDirectives [as updateDirectives] (core.js:10750) 在 checkAndUpdateView (core.js:10147) 在 callViewAction (core.js:10388)
这是我的 client.service.ts
import { Injectable } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable } from 'angularfire2/database-deprecated';
import { Observable, of } from 'rxjs';
import { Client } from '../models/Client';
@Injectable({providedIn:'root'})
export class ClientService {
clients: FirebaseListObservable <any[]>;
client: FirebaseObjectObservable <any>;
constructor(public af:AngularFireDatabase) {
this.clients = this.af.list('/clients') as FirebaseListObservable<Client[]>;
}
getClients():FirebaseListObservable <any[]> {
return this.clients;
}
}
这是我的 clients.component.ts
import { Component, OnInit } from '@angular/core';
import { ClientService } from '../../services/client.service';
import { Client } from '../../models/Client';
@Component({
selector: 'app-clients',
templateUrl: './clients.component.html',
styleUrls: ['./clients.component.css']
})
export class ClientsComponent implements OnInit {
clients:Client[];
constructor(public clientService:ClientService) {
}
ngOnInit() {
this.clientService.getClients().subscribe( clients => {
this.clients = clients;
console.log(this.clients);
});
}
}
这是我的客户端界面
export interface Client {
$key?:string;
firstName?:string;
lastName?:string;
email?:string;
phone?:string;
balance?:number;
}
我已经尝试了几乎所有现有解决方案来解决这个错误和/或让 firebase2 与 Angular 6 一起工作,但我似乎无法解决这个问题。
感谢任何帮助,谢谢!
【问题讨论】:
标签: javascript angular firebase firebase-realtime-database