Angular 角度8,Firebase根据UID和x27的集合显示用户;s
我需要一些帮助。尝试进行调查并进行了多次尝试,其中最后一次或第一次是我的用户集合,在任何情况下,我都无法返回/查看全部 例如,我有4个UID,我需要显示与这4个UID匹配的用户,比如说50个用户。 我尝试使用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匹配的用户 是否有机会以任何可能的方式实现这一点,而不会对性能造成太大损失 谢谢我花了几个小时
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