一次可观察到的Firestore的angularfire2订阅

时间:2018-09-19 13:55:58

标签: angular ionic3 google-cloud-firestore

我想让消防站获得可观察的物品。但是问题是它一次订阅一次。下面是我的代码:

在提供者中:

this.allSponser = this.afs.collection<Sponsoremphasized text('sponsors').snapshotChanges().pipe(map(actions => { 
    return actions.map(a => 
    { 
        const data = a.payload.doc.data() as Sponsor; 
        data.id = a.payload.doc.id; 
        return data; 
    }); 
})); 

在注册页面中:

this.allSponser.subscribe(data=>{ console.log(data); }) 

如果我要返回到其他页面并再次进行注册,则是第一次打印时不打印。

1 个答案:

答案 0 :(得分:0)

首先要提到的是,当您离开组件时,它会被破坏并会重新创建,因此请记住,您需要在observables和{{1}中订阅ngOnInit }在“ ngOnDestroy”中

另一点是,我通常会从服务中返回unsubscribe,例如

observalbe

然后在我的组件中

getSoponsors() {
return this.afs.collection<Sponsoremphasizedtext>('sponsors').snapshotChanges().pipe(map(actions => { 
    return actions.map(a => 
    { 
        const data = a.payload.doc.data() as Sponsor; 
        data.id = a.payload.doc.id; 
        return data; 
    }); 
})); 
}