从firebase-realtime-database过滤数据

时间:2018-11-06 15:44:28

标签: typescript ionic-framework firebase-realtime-database angularfire2

我正在尝试从Firebase获取具有用户名的值的数据。一周前我尝试了两种不同的方法,但是现在我又回来了,我注意到我已经删除了它。

在home.ts里面,我可以预订数据

this.database.list<EventModels>('event-list').valueChanges().subscribe((eventData) => { 

}, (err)=>{
 console.log("Error while retrieving event details : ", err);
}); 

this.eventListRef$ = this.database.list<EventModels>('event-list');
this.eventList$ = this.eventListRef$.snapshotChanges()
.pipe(
  map(changes => 
    changes.map(c => ({ id: c.payload.key, ...c.payload.val() }))
  )
);

我要过滤的数据等于创建者

enter image description here

自从我将创建者设置为用户的电子邮件以来,我只想使用== firebase.auth().currentUser.email列出所有由用户创建的事件,以及我尝试失败的所有事件。

1 个答案:

答案 0 :(得分:0)

来自AngularFire documentation on querying lists

db.list('/items', ref => ref.orderByChild('size').equalTo('large'))

所以看起来您的应该是这样的:

this.eventListRef$ = this.database.list<EventModels>('event-list', 
  ref => firebase.database().ref("event-list").orderByChild("email").equalTo(firebase.auth().currentUser.email));