在angularfire2中,曾经的听众等价物是什么?

时间:2017-10-28 05:12:30

标签: angular firebase firebase-realtime-database angularfire2

我想知道,我们能说: this.af.database.object('whatever').first().toPromise() 相当于: firebase.database().ref('whatever').once('value', snapshot=>{})

只要有一个活动的数据侦听器,我就会将firebase缓存数据(在内存中)。 因此,对于一次侦听器,数据将从缓存中清除。 当我使用first()。toPromise()时,这是相同的行为,所以当收到数据时它会立即分离监听器吗?

我问你这个问题,因为我经常使用异步,我不想失去性能。

2 个答案:

答案 0 :(得分:1)

this Github issue的答案来看,take(1)似乎会创建一个once()的观察者。从那里:

var team = this.af.database.object('/teams/' , { preserveSnapshot: true }).take(1);

答案 1 :(得分:0)

async fetchUserRecord(userId: string) {
   const snapshot = await this.firedb.database.ref('users').child(userId).once('value');
   console.log(snapshot.val());
}

这是一个迟到的答案,但在 angularfire 2 上,您可以使用上述函数查询一次数据,而不是侦听事件或快照更改。