从 firebase-realtime-database 过滤数据
Posted
技术标签:
【中文标题】从 firebase-realtime-database 过滤数据【英文标题】:filtering data from firebase-realtime-database 【发布时间】:2019-04-10 01:02:27 【问题描述】:我正在尝试从具有用户用户名值的 firebase 获取数据。一周前我尝试了 2 种不同的方法,但现在我又回来了,我注意到我已经删除了它。
在 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() ))
)
);
我要过滤的数据等于creator
由于我将创建者设置为用户的电子邮件,我想列出所有仅由用户创建的事件,使用 == firebase.auth().currentUser.email
并且我尝试过的所有事件都失败了。
【问题讨论】:
【参考方案1】:来自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));
【讨论】:
以上是关于从 firebase-realtime-database 过滤数据的主要内容,如果未能解决你的问题,请参考以下文章