在 Angular 中拉取和订阅 firebase 数据
Posted
技术标签:
【中文标题】在 Angular 中拉取和订阅 firebase 数据【英文标题】:Pull and subscribe to firebase data in Angular 【发布时间】:2020-08-27 20:50:55 【问题描述】:我有一个非常简单的任务。我想使用 Angular 从firestore
数据库集合中提取文档。由于此操作可能需要几秒钟才能完成,所以我遇到了一个问题,我需要等待该数据或订阅它。
令我感到困惑的是,在某处的某种文档中没有对此进行清晰、简洁和简单的解释。我现在已经花了几个小时,找到了多种解释 - 没有一个有效。
以下将用于提取数据。但是问题是在数据返回之前就已经写好了。
组件调用服务
this.userInfo = this.UserService.getUserInfo( this.userData.uid )
服务电话
getUserInfo( userId )
var docRef = this.afs.collection('users').doc(userId);
docRef.ref.get().then(function(doc) return doc.data());
您不会在我所见过的任何地方找到解释的 .ref。正如我所说,这些数据被传递给子组件,延迟意味着数据没有传递给组件。我尝试订阅它,但无法让它工作。
我只是想解释一下它应该如何完成,而不是破解。
【问题讨论】:
【参考方案1】:据我了解,通过查看代码,它返回一个Promise
,所以你需要使用它异步的方式
Service.ts
getUserInfo( userId )
var docRef = this.afs.collection('users').doc(userId);
return docRef.ref.get()
component.ts
this.UserService.getUserInfo( this.userData.uid ).then(response=>
this.userInfo = response.data();
)
试试这个,让我知道
【讨论】:
@JoshuaFoxworth:也请随意投票。即将触及 10k :D以上是关于在 Angular 中拉取和订阅 firebase 数据的主要内容,如果未能解决你的问题,请参考以下文章