База данных Angular 5 Firebase получить один предмет - PullRequest
0 голосов
/ 04 мая 2018

У меня много проектов:

export class Project {
  $key: string;
  file: File;
  name: string;
  title: string;
  cat: string;
  url: string;
  progress: number;
  createdAt: Date = new Date();

  constructor(file: File) {
    this.file = file;
  }
}

Я загружаю их все на:

  uploads: Observable<Project[]>;

  private saveFileData(upload: Project) {
    this.db.list(`profile/${this.auth.userId}/project`).push(upload);
}

А потом я пытаюсь получить один:

 uploads: Observable<Project[]>;
getOne(){
  this.uploads = this.db.list(`profile/${this.auth.userId}/project/${this.projectId}`);
}

В этом случае я получаю сообщение об ошибке this.uploads

(Angularfirelist не может быть назначен для Observable.)

Тогда я попробовал это:

  uploads: AngularFireList<Project[]>;

getOne(){
  this.uploads = this.db.list(`profile/${this.auth.userId}/project/${this.projectId}`);
}

Ошибка:

Ошибка: InvalidPipeArgument: [объектный объект] для канала 'AsyncPipe'

Как получить этот один проект?

1 Ответ

0 голосов
/ 04 мая 2018

Добавить valueChanges() для получения только данных или snapshotChanges() для получения данных:

this.uploads = this.db.list(`profile/${this.auth.userId}/project/${this.projectId}`).valueChanges();
...