首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularFire2和Fi还原动态查询:基于用户首选项

AngularFire2和Fi还原动态查询:基于用户首选项
EN

Stack Overflow用户
提问于 2018-04-10 12:24:50
回答 1查看 213关注 0票数 1

这是我想要达到的目标。

我有用户最喜欢的俱乐部添加(如利物浦,巴萨等)。最喜欢的俱乐部的数量可以从1-5(最多5)。

当我需要显示fav俱乐部的新闻时,我需要从消防局那里得到所有的消息,其中添加了俱乐部名称作为文档的一个属性,如这样.

代码语言:javascript
复制
news: sddf938slsjsf(ID): title: 'news title', club: 'Liverpool'

如果我知道有多少俱乐部是固定的,我可以根据每个fav_clubs (‘.where’,‘=’,‘=’,‘利物浦’)建立五个可观测的流,并使用CombineLatest操作符。

但在我的例子中,最喜欢的俱乐部的数量可能会有所不同,这些俱乐部是从用户集合-> Tagged_clubs获取的。

我正在努力寻找实现这一目标的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-10 12:33:11

这是您所需的最低型号(我不会限制5家俱乐部跑得更快):

代码语言:javascript
复制
User {
  ID: string;
  favorites: string[];
}

Club {
  ID: string;
}

New {
  club: string;
  title: string;
  content: string;
}

现在,假设您想获得用户最喜欢的俱乐部的所有消息。

代码语言:javascript
复制
getFavNews(user: User) {
  const calls = [];
  for (let fav of user.favorites) {
    calls.push(this.getNewForClub(fav));
  }
  return forkJoin(calls);
}

getNewForClub(club_ID: string) {
  // Firebase request to get the news about the given club
}

使用此代码,您将需要订阅该方法,该方法将为俱乐部返回一个消息数组:forkJoin允许您一次触发多个请求,并且只有在发出所有请求时才会执行订阅。

我就是这么做的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49753601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档