等待从Firestore获取数据

时间:2017-11-03 02:02:37

标签: ionic-framework google-cloud-firestore

我陷入困境,无法实现以下目标。我的项目是在ionic3和Firestore。

  • 我有一个显示列表的页面。
  • 我有一个提供程序类,它从Firestore中获取constructor方法中的列表并将其存储在数组中。

由于两者一起执行,我如何知道何时在提供程序中提取数据,因此我可以从我的page.ts调用方法来获取列表。

我尝试过以下方法......

在Page.ts

constructor(private provider: Provider){
provider.whenDataReady(this.doThis);
}

doThis(list: Array<any>){
//Do things
}

在Provider.ts

whenDataReady(callback){
if(this.list == undefined){
   setTiomout(this.whenDataReady, 3000)
}else{
   callback(this.list);
}
}

即使没有未定义,Provider.ts中的this.list == undefine检查也始终为真。

所以这就是我想做的事情。如果有更好的方法,请告诉我。我想在不同页面的列表中显示用户的好友数据。 在提供者:

  1. 查询好友ID列表。
  2. 获取循环或Promise.all中所有朋友ID的个人资料数据(如姓名)。
  3. 由于列表可能非常大并且可能花费我很多读取(配置文件数据),我正在以下列方式进行操作。

    我正在订阅朋友ID列表更改并将其保留在Array中。任何页面都可以访问此阵列并根据需要读取尽可能多的好友配置文件数据存储数据后,将不再为该会话读取数据。 所以问题是在访问提供者中的朋友ID数组之前我需要确保它已经被提取。这有意义吗?

0 个答案:

没有答案