Потратив несколько часов, я наконец-то нашел решение и выполняю этот код для 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;
})
})
});
}
});
});
На основе этих 4 идентификаторов, показанных на рисунке ниже, я получаю все профили пользователей со всеми данные, необходимые для каждого пользователя, для создания списка пользователей, с которыми я связан.
![enter image description here](https://i.stack.imgur.com/3Oq1k.png)
и в конце в шаблоне я использую friendsList $ в * ngFor l oop.
Примечание: Этот код можно реорганизовать и сделать лучше, это мое первое решение. После рефакторинга я отредактирую этот ответ. Это на тот случай, если у кого-то возникла такая же проблема.