Случайные пустые ответы из Firestore в приложении Ionic - PullRequest
0 голосов
/ 12 сентября 2018

Мы используем Firestore в приложении Ionic в сочетании с AngularFire и собственным плагином Ionic Firestore.

Мы разработали библиотеку, которая объявляет класс DAO со следующим кодом:

@Injectable()
export abstract class AbstractDao<M extends AbstractModel> {

  constructor(private db: AngularFirestore) {

  }

  ...

  /**
   * @inheritDoc
   */
  public getList(collectionPath: string): Observable<Array<M>> {
    return this.db.collection<M>(collectionPath)
      .snapshotChanges()
      .map(actions => actions.map(doc => this.getNewModelFromDb(doc.payload.doc, collectionPath)));
  }

}

Этот метод иногда вызывается для канала first () следующим образом:

this.referentialCityDao.getList('referentialCities').pipe(first())
  .subscribe((cities) => {
  ...
});

Раньше это работало просто отлично, но в течение последних нескольких дней метод случайным образом возвращает пустой список при первом вызове, давая нам правильные результаты, найденные в базе данных только по второму триггеру в подписке, и, таким образом, делая первый () трубный вызов ошибочный.

Мы обновили все, но проблема по-прежнему возникает регулярно.

...