У меня есть приложение (PWA) в ioni c 4 и angularjs, использующее firebase, который создает CRUD для продукта, я уже включил автономное сохранение (из firebase firestore ) в моем app.modules, но когда я добавляю «Product», предупреждение «loading» замирает на экране, и я не могу сделать это до тех пор, пока мое приложение снова не будет подключено к сети, как я могу заставить мой CRUD работать в автономном режиме?
мой метод saveProducts()
(где я создаю и обновляю продукт в моем приложении)
async saveProduct() {
await this.presentLoading();
this.product.userId = this.authService.getAuth().currentUser.uid;
if (this.productId) {
try {
await this.productService.updateProduct(this.productId, this.product);
await this.loading.dismiss();
this.navCtrl.navigateBack('/home');
} catch (error) {
this.presentToast('Erro ao tentar salvar');
console.log(error);
this.loading.dismiss();
}
} else {
this.product.createdAt = new Date().getTime();
try {
await this.productService.addProduct(this.product);
await this.loading.dismiss();
this.navCtrl.navigateBack('/home');
} catch (error) {
this.presentToast('Por favor preencha todos os campos');
this.loading.dismiss();
console.log(error);
}
}
}
Product.service (который выполняет операции CRUD для моего приложения)
export class ProductService {
private productsCollection: AngularFirestoreCollection<Product>;
constructor(private afs: AngularFirestore) {
this.productsCollection = this.afs.collection<Product>('Products');
}
getProducts(){
return this.productsCollection.snapshotChanges().pipe(
map(actions =>{
return actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return {id, ...data};
});
})
)
}
addProduct(product: Product){
return this.productsCollection.add(product);
}
getProduct(id: string){
return this.productsCollection.doc<Product>(id).valueChanges();
}
updateProduct(id: string, product: Product) {
return this.productsCollection.doc<Product>(id).update(product);
}
deleteProduct(id: string){
return this.productsCollection.doc(id).delete();
}
}
Как я могу заставить мое приложение продолжать работать в автономном режиме?