Je crée une application alimentaire avec ionique (4) / angulaire pouvant gérer des magasins de graves et qui utilisent Firebase. Mais j'ai un problème. Je crée une nouvelle commande comme si SO
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() { } }
3 Réponses :
Vous pouvez utiliser un pour une boucle:
add(stores: Array<CartStore>, address: string) { for (const store of stores) { if (store && store.items && store.items.length) { this.afs.collection<Order>('orders').add({ userId: this.userId, address: address, items: store.items, store: { id: store.id, name: store.name } }); } } }
En faisant cela avec commande 2 articles, il a créé 17 commandes et 2 d'entre eux ont chacun des éléments.
Les 15 autres commandes n'ont pas d'article.
J'ai essayé de faire ce mais ceci crée une commande de sortie (pour chaque élément) au lieu de créer une seule commande avec tous les articles. P> P>
Si vous souhaitez créer tous les éléments dans une commande, vous devez itération au-dessus des éléments à l'avance et créer votre objet avec la structure correcte, vous ne pouvez donc ajouter que cet objet dans un appel supplémentaire.
Puisque vous vérifiez déjà que vous vérifiez les magasins. Pourriez-vous s'il vous plaît poster un exemple de structure de données? C'est à dire. ce qui est passé comme des magasins pour ajouter une fonction
Je viens de télécharger quelque chose.
Désolé, mais cela n'aide pas. Je demandais l'entrée que vous avez passée à votre ajout (magasins: Array
Remplacez votre en boucle par une boucle. Pour IN est utilisé pour des objets lors de l'utilisation de tableaux :)
Cela ne fonctionne pas: '(. Cela a créé une commande pour chaque article.
Avez-vous une solution d'autre pour ce problème?
Cela devrait fonctionner, si vous pouvez partager une jsfiddle ou Stackblitz, je peux vous aider!
Je n'utilise pas Jsfiddle ou Stackblitz.
Cela ne fonctionne pas car "Store" (après la condition IF utilisée comme filtre pour un stockage inutile "stocker" stocker "stocker uniquement un élément.
Chaque article est stocké dans un "magasin" différent.
Avez-vous une autre solution s'il vous plaît?
C'est ce que je parlais dans mon tout premier commentaire ici: si vous souhaitez créer tous les articles d'une commande, vous devez itération à l'avance et créer votre objet avec la structure correcte, vous ne pouvez donc ajouter que cet objet en un. appel. Si vous pouvez partager votre exemple dans un Stackblitz, je peux vous aider.
Ceci est mon magasin.Service.ts et ceci est mon store.ts p> J'ai 2 applications qui ont 2 applications Lié à la même firebase, l'un concerne les clients, l'autre est pour les administrateurs (compte de magasin). Je remarque que je n'ai qu'un seul compte administrateur dans Firebase. p> p>
Si vous n'avez toujours qu'un magasin, vous pouvez y accéder directement comme des magasins [0] .Items, etc. Sinon, boucle sur les magasins avant l'appel de la collection.Ajouter () pour ajouter une commande pour chaque magasin.
Les magasins [0] ne fonctionnent pas car il ne se réfère pas à un magasin spécifique. Je mets tout le code dont vous avez besoin, s'il vous plaît vérifier.