【问题标题】:how to receive data from real time database in firebase in angular如何以角度从firebase中的实时数据库接收数据
【发布时间】:2020-11-15 19:45:12
【问题描述】:
我想从 firebase 中的实时数据库接收数据。数据如下图:
我试过的代码是
return this.db.list('messages', ref => {
return ref.limitToLast(25).orderByKey();
});
但它不起作用
【问题讨论】:
标签:
javascript
angular
firebase
firebase-realtime-database
angularfire2
【解决方案1】:
试试这个从firestore获取消息列表。导入 AngularFireDatabase 服务和 AngularFireList 来存储消息集合。
import { Injectable } from '@angular/core';
import { AngularFireDatabase, AngularFireList } from '@angular/fire/database';
@Injectable({
providedIn: 'root'
})
export class MessageService {
messages: AngularFireList<any>;
constructor(private http: HttpClient, private db: AngularFireDatabase) { }
/**
* Get All tickers from firebase
*/
getMessages(): Observable<any> {
this.messages = this.db.list('messages');
return this.messages.valueChanges();
}
}
确保您已在应用模块中导入 AngularFireModule 和 AngularFireDatabaseModule。
【解决方案2】:
AngularFire 是通过 RxJs 库使用 Observable 模式构建的。
您可以使用 valueChanges() 方法流式传输数据,如 in the documentation 所述
items: Observable<any[]>;
constructor(firestore: AngularFirestore) {
this.items = firestore.collection('items').valueChanges();
}