我需要一些帮助。试图进行调查并进行了多次尝试,最终我还是遇到了最后一个用户集合或第一个用户集合,无论如何我都无法返回/查看全部。
例如,我有4个UID,我需要显示50个用户中与这4个UID匹配的用户。我尝试使用this.db.list('users/', ref => ref.orderByChild('id').equalTo(<string>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;
})
})
});
}
});
});
并且在模板的最后,我在* ngFor循环中使用this.friendsList $。
注意:这是可以重构代码并做得更好的代码,这是我的第一个解决方案。重构后,我将编辑此答案。以防万一有人遇到同样的问题。