Выполнять действие только после возврата коллекции firestore - PullRequest
0 голосов
/ 27 мая 2020

Я подписываюсь на коллекцию в firestore. Я хочу выполнить некоторые действия с этими данными после того, как значение будет возвращено. Как лучше всего это сделать? Я столкнулся с аналогичным вопросом, который побудил меня написать код ниже. Однако этот код, похоже, не ждет, пока не появится значение.

this.versionCollection = this.FirebaseService.getCollection('versions', 'projectId', this.projectData.uid )
.subscribe(()=>{

    // Actions to be carried out after the data is returned
    this.versionData = this.versionCollection[this.versionCollection.length];
    this.initializeMenu();
    this.initializeModel();

});

Код, вызываемый в службе, где afs - это AngularFirestore ...

getCollection( collection, paramName, paramValue ) {
    return this.afs.collection( collection, ref => ref.where( paramName, '==', paramValue )).valueChanges();
}

1 Ответ

0 голосов
/ 27 мая 2020

Простая проверка, как показано ниже, подойдет.

this.versionCollection = this.FirebaseService.getCollection('versions', 'projectId', this.projectData.uid )
    .subscribe(()=>{

        if(this.versionCollection) {
          this.versionData = this.versionCollection[this.versionCollection.length];
          this.initializeMenu();
          this.initializeModel();
        }

    });
...