无法到达消防站集合ID

时间:2019-02-04 23:41:48

标签: angular firebase google-cloud-firestore angularfire

我正在尝试在有一个集合时访问数据,并在该集合内添加一个文档,然后在该文档内再次添加一个集合。

但我无法做到。

getTeams() {
  this.db
    .doc('epicseven')
    .collection('teams')
    .snapshotChanges()
    .subscribe(data => {
      console.log(data);
    });
}

这是数据库。

image 1 image 2

我想使用最后一个数组访问JSON,因此可以在html中进行迭代。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我认为您一开始就误认为文档的集合。 'epicseven'是一个集合。集合始终是文档之后,并且在文档内部,有对集合的引用或值本身。除了您没有足够深入地获取所需数据外,我猜您查询将仅获得团队集合的名称,因为默认情况下Firestore查询是浅的。我建议以下查询:

getTeams() {
  this.db
    .collection('epicseven')
    .doc('teams')
    .collection([TEAM_NAME])
    .doc([ID])
    .valueChanges()
    .subscribe(data => {
      console.log(data);
    });
}

答案 1 :(得分:1)

使用它。

getTeams() {
  this.db
  .collection('epicseven')
  .doc('teams')
  .collection([TEAM_NAME])
  .doc([ID])
  .snapshotChanges()
  .pipe(map(list => list.map(item => {
     let data = item.payload.doc.data();
     let id = item.payload.doc.id;
     return { id, ...data }
   }))).subscribe(res => {
    console.log(res);
  });
}