我想知道,我们能说:
this.af.database.object('whatever').first().toPromise()
相当于:
firebase.database().ref('whatever').once('value', snapshot=>{})
我问你这个问题,因为我经常使用异步,我不想失去性能。
答案 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
上,您可以使用上述函数查询一次数据,而不是侦听事件或快照更改。