【发布时间】:2019-03-27 07:46:12
【问题描述】:
我已经多次尝试创建一个 Angular 7 服务,该服务将从 Firestore 返回一个 observable,但最新版本不返回任何数据(迄今为止最好的结果);我使用 Angularfire2 是因为它应该是为 observables 设计的并且更易于使用。
我的服务是 data4eatery.ts:
import { Injectable } from '@angular/core';
import { AngularFirestore, AngularFirestoreCollection } from 'angularfire2/firestore';
import { Observable } from 'rxjs';
import { IeTables } from './../components/models/eateries-model';
@Injectable({
providedIn: 'root'
})
export class Data4eateryService {
tablesCollection: AngularFirestoreCollection<IeTables>;
tables: Observable<IeTables[]>;
constructor(private afs: AngularFirestore) { }
getTables() {
this.tablesCollection = this.afs.
collection('eEatery').doc('J3XTNqSWGzmU4261BDHD'). //hard coded for testing
collection('eTable');
this.tables = this.tablesCollection.valueChanges();
return this.tables;
}
}
调用组件的代码:
tables: IeTables[] = [];
constructor( private data4eateryservice: Data4eateryService) { }
ngOnInit() {
const tablesObservable = this.data4eateryservice.getTables();
tablesObservable.subscribe((tablesData: IeTables[]) => {
this.tables = tablesData;
});
console.log('Tables', this.tables);
}
这会返回表格 []
我发现的所有教程都从同一组件中的常量返回可观察值。几周来我一直在尝试解决这个问题,所以请帮助我。
【问题讨论】:
标签: angular service google-cloud-firestore observable