фильтр rxjs 6 после отображения карты фильтром не является функцией

#angular #firebase #rxjs

#angular #firebase #rxjs

Вопрос:

Я пытаюсь отфильтровать данные после использования карты, но я получаю сообщение об ошибке, в котором говорится:

data.favorite.filter не является функцией

Где я ошибаюсь?

структура БД:

 uid{
   name
   age
   favorite{
            id{
               name
               }
            }
    }
  
 this.db.getDataObj("/Profile/"   this.uid).pipe(
map(data => 
  data.favorite.filter(c=> 
    c.name === this.name))).subscribe(res => console.log(res));
  

Комментарии:

1. Мы не знаем, что возвращает эта конечная точка, поэтому мы не можем сказать вам, где вы ошибаетесь. Очевидно, что это не массив. Может быть, попробуйте вывести данные из системы или посмотреть детали ответа на вкладке сеть? Или вы пытались фильтровать поток, а не массив в потоке?

2. Похоже, карта не нужна, и она могла бы работать с .pipe(filter(..

3. @F.G. мы не знаем, это зависит от того, пытается ли OP отфильтровать поток или сопоставить фильтр по массивам в потоке. Возможно и то, и другое.

4. @jonrsharpe Ты прав.

5. Ваше обновление показывает, что data.favorite является объектом. Не массив. Для объектов нет метода фильтрации. Конечно, то, что вы опубликовали, не является ни допустимым JS, ни допустимым JSON, поэтому нам приходится строить догадки.