Я создаю приложение для еды с Ionic (4) / Angular, которое может работать с несколькими магазинами и использует FireBase. Но у меня есть проблема. Я создаю новый заказ, например, так:
add(stores: Array<CartStore>, address: string) {
this.afs.collection<Order>('orders').add({
userId: this.userId,
address: address,
items: stores.items,
store: {
id: stores.id,
name: stores.name,
}
});
}
Чтобы создать ОДИН ОДИН ОДИН заказ, мне нужно использовать цикл for, подобный так внутри функции выше
for(let i in stores){
items: stores[i].items,
store: {
id: stores[i].id,
name: stores[i].name,
}
}
Но это невозможно внутриФункция сбора Firebase ... Arghhh!
Затем,
Вот как работает мое приложение:
Нажав на кнопку оформления заказа
this.orderProvider.add(this.cart.stores, this.address);
Мои модели:
Cart.ts
import { CartStore } from "./cart-store";
export class Cart {
id?: string;
userId: string;
total: number;
stores: Array<CartStore>;
}
Order.ts
import { CartStore } from "./cart-store";
export class Order {
id?: string;
userId: string;
total?: number;
address: string;
status?: string;
orderNumber?: string;
createdAt?: number;
updatedAt?: number;
store: CartStore;
items: Array<CartStore>;
isReviewed?: boolean;
}
Cart-Store.ts
import { CartItem } from './cart-item';
export class CartStore {
id?: string;
name: string;
subTotal?: number;
items?: Array<CartItem>;
constructor() {
}
}
Cart-Item.ts
import { Variation } from "./variation";
import { ItemReview } from "./item-review";
import { Size } from "./size";
export class CartItem {
id?: string;
name: string;
price: number;
quantity: number;
thumbnail: string;
variations: Array<Variation>;
size: Size;
subTotal: number;
review?: ItemReview;
constructor() {
}
}
Спасибо за помощь! Я начинаю в этом домене.