Partage
  • Partager sur Facebook
  • Partager sur Twitter

put un array avec la méthode set() de firebase

Blocage sur le cours : Développez des applications web avec Angular

    5 avril 2020 à 22:41:02

    Bonjour à tout le monde !

    Je suis bloqué sur un tutoriel depuis plusieurs jours et je ne trouve pas de solutions malgré mes recherches sur internet. Il y a sûrement quelque chose que je n'ai pas compris ... Je suis développeur junior, je vais donc essayer d'être aussi clair que possible.

    Pour résumer, dans ce dernier chapitre, nous mettons en pratique tout ce que nous avons appris. Il s'agit ici de créer une application pour gérer une bibliothèque de livres (créer / éditer / supprimer / lire), connectée à un back-end firebase.

    La seule différence avec mon travail est que j'ai décidé de le faire avec des pokemons et non des livres (pourquoi pas!) En demandant l'API pokeapi. Intégrez ensuite une carte leaflet pour placer des marqueurs aléatoires sur notre emplacement et faire une sorte de pokemonGo très simplifié, je pensais que ce serait un bon exercice !

    J'ai suivi (je pense) les bonnes pratiques indiquées dans le tutoriel et j'ai suivi la même logique me semble y (pousser un tableau en base avec firebase).

    Je me suis dit que la première chose à faire est de récupérer la liste des pokémons dans le composant de l'application lors de l'initialisation de l'application. Donc avec le httpClient angular je demande à l'api pokeapi d'avoir une liste d'url pour chaque pokemons (url qui correspond à l'adresse à demander pour avoir le détail d'un pokemon). puis je veux mapper () sur cette liste pour requêter chaque url  afin d'avoir les données de tous les pokemons et enfin pousser ces données sur mon back firebase. Je pourrais évidemment utiliser directement les données provenant de pokeapi mais je veux pousser ces données sur firebase simplement pour comprendre et m'entraîner.

    Lorsque je requête sur chaque URL, je reçois les données que je pousse dans un tableau (this.pokemonsService.pokemons). Après tous les appels, je vérifie les valeurs du tableau qui contient toutes les données.
    Le problème est là: lorsque je push en base via la méthode set () de Firebase, la valeur du tableau semble être nulle ... Évidemment, je suppose que le problème ici est lié à l'asyncronicité ou à l'abonnement de l'observable mais après de nombreux essais un peu hasardeux et de multiples recherches, je n'arrive pas à cibler le problème et le corriger. J'espère vraiment que vous pourrez m'aider ...

    Je pense que tout ce que j'ai besoin de vous donner comme code pour m'aider est essentiellement dans 2 fichiers: app.component.ts et pokemons.service.ts

    Je vous envoie donc des liens git pour voir mon code:

    Lien racine de mon dépôt git: https://github.com/DamienCastello/pokesafari-angular

    Lien app.component.ts de mon dépôt git: https://github.com/DamienCastello/pokesafari-angular/blob/master/src/app/app.component.ts

    Lien pokemons.service.ts de mon dépôt git: https://github.com/DamienCastello/pokesafari-angular/blob/master/src/app/services/pokemons.service.ts

    N'hésitez pas à me dire si je n'ai pas fourni suffisamment d'informations sur un point précis pour pouvoir m'aider. Je reste à l'affût si jamais je dois fournir plus d'informations. Merci d'avance pour votre aide et j'espère que cela me débloquera !



    -
    Edité par DamienCastello 8 avril 2020 à 19:05:09

    • Partager sur Facebook
    • Partager sur Twitter

    put un array avec la méthode set() de firebase

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown