Firestore get () для всех документов в коллекции возвращает ошибку - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь перебрать все документы в коллекции с помощью метода get (), как это определено в документации , однако у меня это не работает. Я получаю ошибку get is not a function, что я делаю не так?

export class MainComponent implements OnInit {
    selectedCharacter: number = null;
    people: Observable<any>;
    private peopleCollection: AngularFirestoreCollection<Character>;

    constructor(private db: AngularFirestore,
          private route: ActivatedRoute,
          private location: Location) {
      this.peopleCollection = db.collection('people');
      this.people = this.peopleCollection.valueChanges();

      this.route.params.subscribe(
          params => (this.selectedCharacter = +params['id'])
      );
    }

    ngOnInit() {
        this.peopleCollection.get().then(function(querySnapshot) {
            querySnapshot.forEach(function(doc) {
                console.log(doc.id, " => ", doc.data());
            });
        });
   }
}

1 Ответ

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

TL; DR: this.peopleCollection. ref .get ()

Метод сбора valueChanges возвращает Observable:

export declare class AngularFirestoreCollection<T> {
    ...
    valueChanges(events?: DocumentChangeType[]): Observable<T[]>;
    ...
}

Вы можете подписаться на Observable, возвращаемый valueChanges:

ngOnInit() {
    this.people.subscribe(data => console.log(data));
}

Или вы можете использовать CollectionReference, чтобы получить Promise:

ngOnInit() {
    this.peopleCollection.ref.get().then(data => console.log(data));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...