Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.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
Angular 角度8,Firebase根据UID和x27的集合显示用户;s_Angular_Firebase_Filter_View - Fatal编程技术网

Angular 角度8,Firebase根据UID和x27的集合显示用户;s

Angular 角度8,Firebase根据UID和x27的集合显示用户;s,angular,firebase,filter,view,Angular,Firebase,Filter,View,我需要一些帮助。尝试进行调查并进行了多次尝试,其中最后一次或第一次是我的用户集合,在任何情况下,我都无法返回/查看全部 例如,我有4个UID,我需要显示与这4个UID匹配的用户,比如说50个用户。 我尝试使用this.db.list('users/',ref=>ref.orderByChild('id').equalTo(id.ids)).snapshotChanges(),但这只返回与上一个值/UID匹配的用户 是否有机会以任何可能的方式实现这一点,而不会对性能造成太大损失 谢谢我花了几个小时

我需要一些帮助。尝试进行调查并进行了多次尝试,其中最后一次或第一次是我的用户集合,在任何情况下,我都无法返回/查看全部

例如,我有4个UID,我需要显示与这4个UID匹配的用户,比如说50个用户。 我尝试使用
this.db.list('users/',ref=>ref.orderByChild('id').equalTo(id.ids)).snapshotChanges()
,但这只返回与上一个值/UID匹配的用户

是否有机会以任何可能的方式实现这一点,而不会对性能造成太大损失


谢谢

我花了几个小时终于想出了一个解决方案,我在ngOnInit上执行了以下代码:

  this.auth.user.subscribe(user => {
  this.db.list('users/' + user.uid + '/friends').valueChanges().pipe(map(changes => {
    return changes.map(x => {
      return x;
    })
  })).subscribe(friends => {
    let test1 = [];
    let test2 = [];
    for (let i = 0; i < friends .length; i++) {
      this.db.list('users/', ref => ref.orderByChild('id').equalTo(<string>friends[i].ids)).snapshotChanges()
        .subscribe(x => {
        test1.push(x);
        test1.forEach(y => {
          y.forEach(z => {
            test1 = [];
            test2.push(z);
            this.friendsList$ = test2;
          })
        })
      });
    }
  });
});
this.auth.user.subscribe(用户=>{
这个.db.list('users/'+user.uid+'/friends').valueChanges().pipe(map(changes=>{
返回changes.map(x=>{
返回x;
})
})).订阅(好友=>{
设test1=[];
设test2=[];
for(设i=0;iref.orderByChild('id').equalTo(friends[i].ids)).snapshotChanges()
.订阅(x=>{
测试1.推(x);
test1.forEach(y=>{
y、 forEach(z=>{
test1=[];
试验2.推力(z);
this.friendsList$=test2;
})
})
});
}
});
});
基于下图所示的这4个UID,我正在获取所有用户配置文件以及每个用户所需的所有数据,以创建与我连接的用户列表

在模板的最后,我在*ngFor循环中使用friendsList$

注意:
这是代码可以重构并做得更好,这是我的第一个解决方案。重构之后,我将编辑这个答案。这只是为了防止有人有同样的问题。

请提供一个最小的重复性示例,如Stackblitz