Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular Firestore联接集合不工作_Javascript_Angular_Google Cloud Firestore_Ionic4 - Fatal编程技术网

Javascript Angular Firestore联接集合不工作

Javascript Angular Firestore联接集合不工作,javascript,angular,google-cloud-firestore,ionic4,Javascript,Angular,Google Cloud Firestore,Ionic4,我有两个收集,我正试图加入。审查评论和用户 以下是我服务中的代码: getAll(reviewID) { const allComments = this.af.collection<Review>(`reviews/${reviewID}/comments`, ref => ref.orderBy('dateCreated', 'desc')) .valueChanges() .pipe( switchMap(reviews

我有两个收集,我正试图加入。审查评论和用户

以下是我服务中的代码:

 getAll(reviewID) {
    const allComments = this.af.collection<Review>(`reviews/${reviewID}/comments`, ref => ref.orderBy('dateCreated', 'desc'))
      .valueChanges()
      .pipe(
        switchMap(reviews => {
          const res = reviews.map((review: review) => {
            return this.af.collection<User>('users', ref => ref.where('userID', '==', review.userID))
            .valueChanges()
            .pipe(
              map(user => Object.assign(review, { user }))
            );
          });
          return combineLatest(...res);
        })
      );
      return allComments;
  }
这在很大程度上是可行的,但它似乎每隔一条评论就会返回用户数组

例如:

0:
comment: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse id quam ut lacus tempor aliquam. Curabitur efficitur, lorem sit amet sodales finibus, erat arcu imperdiet dolor, eget ultricies arcu felis sit amet enim. Interdum et malesuada fames ac ante ipsum primis in faucibus."
dateCreated: Timestamp {seconds: 1549654515, nanoseconds: 0}
userID: "c8Y3q9Mn0sdfGFDgMWqh4GqJC5B2"
user: Array(0)
1:
comment: "this is the third comment"
dateCreated: Timestamp {seconds: 1549638673, nanoseconds: 0}
userID: "KEPBML9xlDfgedGZAslzOfOfbSwh2"
user: Array(1)
0: {avatar: "img.jpg", fullname: "Michael Jones", userID: "KEPBML9xlDfgedGZAslzOfOfbSwh2", username: "michaelj"}
2:
comment: "this is the second comment"
dateCreated: Timestamp {seconds: 1549562400, nanoseconds: 0}
userID: "NbPyKuTIB5dfGDGdVNmEB1h5YG2"
user: Array(0)
3:
comment: "this is the first comment"
dateCreated: Timestamp {seconds: 1549558800, nanoseconds: 0}
userID: "N2FhiRSJcdfGEDRgrCvPZa98bU4Im2"
user: Array(1)
0: {avatar: "img.jp", fullname: "Emily Jones", userID: "N2FhiRSJcdfGEDRgrCvPZa98bU4Im2", username: "emilyj"}
我已确认正在传递所有用户ID

我做错什么了吗?
我不确定我错过了什么,任何帮助都将不胜感激。

我终于找到了答案。不知道我以前没想到什么

要解决此问题,我更改了:

this.af.collection('users',ref=>ref.where('userID','=','review.userID))


this.af.doc(
users/${review.userID}

请添加review和user集合的示例数据,以便我可以在我的集合中进行尝试。你能详细说明你想要达到的目标吗?您想获取单个用户的所有评论吗?我想获取包含用户数据的所有评论,以便显示发布评论的用户的信息。最后,我将第二个
.collection
更改为
.doc
0:
comment: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse id quam ut lacus tempor aliquam. Curabitur efficitur, lorem sit amet sodales finibus, erat arcu imperdiet dolor, eget ultricies arcu felis sit amet enim. Interdum et malesuada fames ac ante ipsum primis in faucibus."
dateCreated: Timestamp {seconds: 1549654515, nanoseconds: 0}
userID: "c8Y3q9Mn0sdfGFDgMWqh4GqJC5B2"
user: Array(0)
1:
comment: "this is the third comment"
dateCreated: Timestamp {seconds: 1549638673, nanoseconds: 0}
userID: "KEPBML9xlDfgedGZAslzOfOfbSwh2"
user: Array(1)
0: {avatar: "img.jpg", fullname: "Michael Jones", userID: "KEPBML9xlDfgedGZAslzOfOfbSwh2", username: "michaelj"}
2:
comment: "this is the second comment"
dateCreated: Timestamp {seconds: 1549562400, nanoseconds: 0}
userID: "NbPyKuTIB5dfGDGdVNmEB1h5YG2"
user: Array(0)
3:
comment: "this is the first comment"
dateCreated: Timestamp {seconds: 1549558800, nanoseconds: 0}
userID: "N2FhiRSJcdfGEDRgrCvPZa98bU4Im2"
user: Array(1)
0: {avatar: "img.jp", fullname: "Emily Jones", userID: "N2FhiRSJcdfGEDRgrCvPZa98bU4Im2", username: "emilyj"}