Одна из моих коллекций в Firebase Cloud Firestore насчитывает более 1500 записей. Я показываю эти данные в сетке в моем приложении angular. Проблема в том, что всякий раз, когда я обновляю sh страницу или когда я разрабатываю приложение, поэтому при каждом изменении / сохранении оно перекомпилирует и перезагружает страницу, что делает операцию чтения 1500 документов. Я предполагал, что firebase автоматически кэширует набор результатов, а snapshotChanges () просто вернет мне новую / обновленную запись, но здесь я не вижу никакого механизма кеширования. Ниже приведен мой код, который я использую для получения данных из Firebase.
getAllProducts(): Observable<Product[]> {
return this.firestore.collection('Products').snapshotChanges().pipe(map(actions => {
return actions.map(x => {
const obj: any = x.payload.doc.data();
obj.id = x.payload.doc.id;
return obj as Product;
});
}));
}
Я думаю, что это очень распространенный вариант использования, но, скорее всего, мне что-то не хватает. Подскажите, пожалуйста, как я могу уменьшить количество операций чтения, сохранив наблюдаемую для моей коллекции в CloudFirestore?
Спасибо