angular 如何从 firebase 中的实时数据库接收数据

how to receive data from real time database in firebase in angular

我想从 firebase 的实时数据库接收数据。数据如下所示:

我试过的代码是

return this.db.list('messages', ref => {
  return ref.limitToLast(25).orderByKey();
});

但它不起作用

AngularFire 是通过 RxJs 库使用 Observable 模式构建的。

您可以使用 valueChanges() 方法流式传输数据,如所述in the documentation

items: Observable<any[]>;
constructor(firestore: AngularFirestore) {
   this.items = firestore.collection('items').valueChanges();
}

试试这个从 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();
    }

}

确保您已在应用模块中导入 AngularFireModuleAngularFireDatabaseModule