Я создал приложение angular 8 с firestore, используя angularfirebase.
Приложение должно работать в автономном режиме, это отлично работает, если включить сохранение на базе firebase.(И создайте сервис-работника и т. Д. Для angular).
Теперь я получаю свои данные из firestore следующим образом:
public async get(): Promise<Customer[]> {
return await this.itemsCollection.valueChanges({ idField: 'id' }).pipe(take(1)).toPromise();
}
Я не предпочитаю наблюдаемые с асинхронным конвейером, потому что это делает все слишком сложным.
Проблема, с которой я столкнулся сейчас, - если я обновляю некоторые данные в самом firestore или на другом устройстве, локальные данные не обновляются.После того, как я обновляю страницу, она продолжает извлекать старые кэшированные данные из хранилища.Я попытался исправить это, очистив постоянный кеш, но я не знаю, где поместить его в мой код, чтобы заставить его работать.
private db: AngularFirestore, // in constructor
this.db.firestore.clearPersistence(); // somewhere after initializing firebase
Я также думаю, что это не хорошее готовое решение.
Как я могу решить эту проблему?
Может, мне все-таки стоит заняться наблюдаемыми и переписать все.