ฉันสามารถมีคอลเลกชันของเอนทิตีภายในเอนทิตีโดยใช้ Ngrx - Entity Adapter ได้ไหม
ฉันต้องการสร้างคอลเลกชันของเอนทิตีภายในเอนทิตี ฉันจะทำสิ่งนี้โดยใช้ NgRx กับ Cloud Firestore ได้อย่างไร
ฉันรู้ว่าฉันสามารถสร้างอาร์เรย์ภายในเอกสาร Pizza ได้ แต่ฉันต้องการทำสิ่งนี้โดยใช้ความสามารถในการปรับขนาดของ Cloud Firestore เพราะฉันต้องการใช้งานฟังก์ชันด้วยฟังก์ชันคลาวด์แบบไดนามิก
ฉันต้องการบางอย่างเช่นสิ่งที่อยู่ใน AngularFire2 State Changex ด้วย Ngrx บทเรียน แต่ฉันต้องการให้พิซซ่าแต่ละชิ้นมีท็อปปิ้งที่ควรอยู่ในสถานะพิซซ่าในแต่ละเอนทิตี
เส้นทาง Cloud Firestore:
PathRefPizzas: pizzas/{pizaId}
;
PathRefToppings: pizzas/{pizaId}/toppings/{toppingId}
;
export function pizzasReducer(
state: PizzaState = initialState,
action: ActionPizza) {
switch (action.type) {
case actionsPizza.PIZZA_ADDED: {
return unidadeAdapter.addOne(action.payload, state)
};
case actionsPizza.PIZZA_MODIFIED:
return pizzaAdapter.updateOne({
id: action.payload.id,
changes: action.payload
}, state)
case actionsPizza.PIZZA_REMOVED:
return pizzaAdapter.removeOne(action.payload.id, state)
case actionsPizza.TOPPING_ADDED: {
// Here I need to add Toppings inside a Pizza entity in which it belongs.
return toppingsAdapter.addOne(action.payload, state);
}
default:
return state;
}
ข้อมูลในสถานะควรเป็นดังนี้
pizzas: {
ids: [...]
entities: [
{'pizza1': {id: 'pizza1, name: 'Pizza 1', toppings: [...]},
{'pizza2': {id: 'pizza2, name: 'Pizza 2', toppings: [...]}
{'pizza3': {id: 'pizza3, name: 'Pizza 3', toppings: [...]}
{'pizza4': {id: 'pizza4, name: 'Pizza 4', toppings: [...]}
{'pizza5': {id: 'pizza5, name: 'Pizza 5', toppings: [...]}
];
}
ฉันจะทำสิ่งนี้โดยใช้การจัดการสถานะ ngrx ได้อย่างไร หากใครสามารถช่วยฉันได้ฉันจะทำอย่างไรฉันจะขอบคุณมากสำหรับสิ่งนี้มันสำคัญมากสำหรับฉัน !!!