Création d'une application Web à partir de zéro avec AngularJS et Firebase

Dans cette série, nous utiliserons AngularJS et Firebase pour créer une application Web simple à partir de rien. Ce sera une application de blogging simple où l'utilisateur pourra se connecter ou s'inscrire et publier un article de blog..

Ce tutoriel suppose que vous avez des connaissances de base sur AngularJS, mais il ne devrait pas être difficile de choisir les sujets le long du chemin. Si vous rencontrez des bogues ou des erreurs que vous n'arrivez pas à corriger, essayez l'un des correcteurs de bogues experts d'Envato Studio..

Introduction à AngularJS

AngularJS est l’un des frameworks JavaScript MVC les plus recherchés. C'est un cadre structurel pour la création d'applications Web dynamiques en étendant les capacités HTML. Des fonctionnalités telles que la liaison de données et l'injection de dépendance facilitent le développement d'applications avec moins de code.

De la documentation AngularJS:

Le langage HTML est idéal pour déclarer des documents statiques, mais il échoue lorsque nous essayons de l’utiliser pour déclarer des vues dynamiques dans des applications Web. AngularJS vous permet d’étendre le vocabulaire HTML pour votre application. L’environnement résultant est extraordinairement expressif, lisible et rapide à développer..

Introduction à Firebase

Imaginez créer une application Web sans vous soucier de l'arrière-plan. Firebase permet de synchroniser les données en temps réel avec notre application sans se soucier du back-end. Tout ce que nous avons à faire est de faire des appels API.

Firebase est une API puissante pour stocker et synchroniser des données en temps réel. En combinant la puissance de la liaison de données bidirectionnelle AngularJS avec Firebase, vous obtenez une synchronisation à trois voies plutôt impressionnante..

Débuter avec AngularJS

le graine angulaire projet est un passe-partout pour commencer à créer des applications Web avec AngularJS. Téléchargez ou clonez le graine angulaire projet du référentiel. 

$ git clone https://github.com/angular/angular-seed.git

Accédez au répertoire du projet et installez les dépendances requises.

$ cd angular-seed $ npm install ## Installez les dépendances

Démarrez le serveur de noeud:

$ npm start ## Démarrer le serveur

Pointez votre navigateur sur http: // localhost: 8000 / app / index.html et vous devriez voir l'application par défaut en cours d'exécution.

Accédez au app répertoire à l'intérieur graine angulaire. C'est ici que réside le code de l'application. À l'intérieur de app dossier que vous trouverez app.js qui est le noyau de l'application. Nous allons déclarer tous les modules et les routes au niveau de l'application dans ce fichier. Par défaut, le graine angulaire le projet a deux vues, vue1 et vue2. Supprimer les dossiers vue1 et vue2 depuis le dossier de l'application. 

Commençons à partir de zéro. S'ouvrir app.js et supprimez le code existant. Dans app.js nous allons définir nos routes d’application, par exemple, comment traiter une demande comme /maison. Pour définir les itinéraires, nous aurons besoin d’un module AngularJS appelé ngRoute. Utiliser ngRoute nous devons d’abord l’injecter ou l’ajouter à notre application. Nous allons utiliser angular.module pour ajouter le ngRoute module à notre application comme indiqué ci-dessous: 

angular.module ('myApp', ['ngRoute'])

le ngRoute Le module a un composant appelé $ routeProvider qui est utile pour configurer les itinéraires. Nous allons injecter $ routeProvider dans le config méthode de module angulaire et définissez nos itinéraires dans sa fonction de rappel, comme indiqué ci-dessous:

'use strict'; angular.module ('myApp', ['ngRoute']). config (['$ routeProvider', function ($ routeProvider) // Les routes seront ici]);

Ensuite, ouvrez index.html et supprimer les références de script à vue1 et vue2. Enlevez tout du corps de index.html sauf les références de script et la div ci-dessous avec la directive ngView. 

ngView est une directive qui aide à rendre la vue attachée avec un itinéraire particulier dans la présentation principale, index.html. Donc, chaque fois que la route change, le contenu de la div ci-dessus change.

Créons maintenant une nouvelle vue pour que l’utilisateur puisse se connecter. app répertoire créer un nouveau dossier appelé maison. À l'intérieur maison, créer deux fichiers appelés home.html et home.js. S'ouvrir home.html et inclure le code HTML suivant:

     Application Web AngularJS & Firebase      

AngularJS & Firebase App!

Comme indiqué dans le code ci-dessus, nous utiliserons Bootstrap pour créer nos vues d'application..

À l'intérieur home.js, nous allons déclarer les itinéraires pour que l'application accède à la vue d'accueil. $ routeProvider  a une méthode appelée quand, que nous utiliserons pour créer un itinéraire pour notre vue d'accueil. Lors de la définition d'un nouvel itinéraire, nous définirons un templateUrl qui serait rendu dans le index.html. Parallèlement à cela, nous allons également définir un manette pour le nouvellement créé $ scope de la vue d'accueil. Un contrôleur est une logique qui contrôle une vue particulière. Voici à quoi cela devrait ressembler:

'use strict'; angular.module ('myApp.home', ['ngRoute']) // Route déclarée .config (['$ routeProvider', fonction ($ routeProvider) $ routeProvider.when ('/ home', templateUrl: 'home /home.html ', contrôleur:' HomeCtrl ');]) // Contrôleur d'origine. Contrôleur (' HomeCtrl ', [fonction () ]);

Maintenant ouvrir app.js et inclure le module d'accueil myApp.home dans l'application Déclarez également la route par défaut de notre application en utilisant le $ routeProvider.otherwise méthode à la vue d'accueil.

'use strict'; angular.module ('monApp', ['ngRoute', 'monApphome' // module de base nouvellement ajouté]). config (['$ routeProvider', fonction ($ routeProvider) // Définir la vue par défaut de notre application sur home $ routeProvider.otherwise (redirectTo: '/ home')));

Ensuite, pour afficher la page d'accueil, nous devons inclure home.js dans le fichier de modèle HTML principal de l'application. S'ouvrir index.html et comprennent les éléments suivants:

Redémarrez le serveur et pointez votre navigateur sur http: // localhost: 8000 / app / index.html et vous devriez voir l'écran de connexion:

Débuter avec Firebase

Pour commencer, nous devons créer un compte gratuit sur Firebase. Lors d'une inscription réussie, nous obtiendrons un écran comme celui-ci:  

Notez l'URL de l'application créée et cliquez sur le bouton Gérer l'application bouton. Nous allons utiliser cette URL Firebase pour interagir avec la base de données Firebase.

Nous utiliserons Firebase pour authentifier notre application en utilisant un email et un mot de passe. Pour que cela fonctionne, nous devons l'activer à partir de Firebase. Dans le tableau de bord, cliquez sur le bouton Login & Auth onglet dans le menu de gauche. Dans cet écran, sous le Mot de passe de l'email onglet, vérifier Activer l'authentification par courrier électronique et mot de passe comme montré:

Ajouter un nouvel utilisateur avec un Email et Mot de passe contre lequel nous nous authentifierons après avoir implémenté la fonctionnalité de connexion.

Implémentation de la fonctionnalité de connexion

Pour commencer à utiliser Firebase, incluez les scripts suivants dans app / index.html:

  

Ensuite, nous devons injecter le base de feu module dans home.js. Ajouter le base de feu module dans home.js comme indiqué ci-dessous:

angular.module ('monApp.home', ['ngRoute', 'firebase'])

Nous sommes maintenant prêts à interagir avec Firebase. S'ouvrir home.js et à l'intérieur HomeCtrl, créer une nouvelle fonction appelée Se connecter authentifier l'utilisateur. Nous allons utiliser $ scope pour créer la nouvelle fonction. $ scope est un objet qui fait référence au modèle d'application et sert également de colle entre le contrôleur d'application et la vue. Nous allons donc injecter le $ scope objet dans le Se connecter fonction de sorte que le modèle d'objet de la vue soit accessible à l'intérieur du Se connecter une fonction.

$ scope.SignIn = fonction ($ scope) nom d'utilisateur var = $ scope.user.email; var password = $ scope.user.password; // Auth Logic sera ici

Ensuite, à l'intérieur HomeCtrl créez une instance Firebase en utilisant l'URL Firebase comme indiqué:

var firebaseObj = new Firebase ("https://blistering-heat-2473.firebaseio.com"); 

le $ firebaseSimpleLogin module est utilisé pour s’authentifier auprès de Firebase à l’aide d’un identifiant de messagerie et d’un mot de passe. Pour l'utiliser, nous devrons injecter le $ firebaseSimpleLogin module en HomeCtrl comme montré:

.contrôleur ('HomeCtrl', ['$ scope', '$ firebaseSimpleLogin', fonction ($ scope, $ firebaseSimpleLogin) 

En utilisant firebaseObj créer un $ firebaseSimpleLogin exemple comme indiqué:

var loginObj = $ firebaseSimpleLogin (firebaseObj);

Maintenant, en utilisant l’API $ login, nous authentifierons l’ID de messagerie et le mot de passe auprès de Firebase.. loginObj. $ login prend dans l'email et mot de passe comme paramètres. En cas d’authentification réussie, nous obtenons un rappel de succès et en cas d’authentification infructueuse, nous obtenons un rappel d’erreur.. 

$ scope.SignIn = fonction (événement) événement.preventDefault (); // Pour empêcher l'actualisation du formulaire var username = $ scope.user.email; var password = $ scope.user.password; loginObj. $ login ('mot de passe', email: nom d'utilisateur, mot de passe: mot de passe) .then (fonction (utilisateur) // Rappel de la console.log ('Authentification réussie');, fonction (erreur) // Failure callback console.log ('Échec de l'authentification');); 

Maintenant, pour que tout le code de contrôleur ci-dessus fonctionne, nous devons attacher le contrôleur à la vue. AngularJS fournit une directive appelée ngController pour attacher un contrôleur à une vue. S'ouvrir home.html et ajoutez le ngController directive à la corps élément à attacher à HomeCtrl.

Nous avons besoin que les valeurs de courrier électronique et de mot de passe soient accessibles à l’intérieur du Se connecter fonction du contrôleur. AngularJS fournit une directive appelée ngModel pour lier sa valeur à $ scope afin qu'il soit accessible à l'intérieur du Se connecter une fonction. Inclure le ngModel directive à l'email et mot de passe contribution éléments comme indiqué:

 

AngularJS & Firebase App!

Enfin, ajoutez la directive ngClick au bouton de connexion pour appeler le Se connecter une fonction:

Enregistrez toutes les modifications et redémarrez le serveur. Pointez votre navigateur sur http: // localhost: 8000 / app / index.html # / home et essayez de vous connecter à l'aide de l'ID de messagerie. [email protected] et mot de passe geai. En cas d’authentification de l’utilisateur réussie, vous devriez voir le message Authentification réussie dans la console du navigateur.

Conclusion

Dans ce tutoriel, nous avons expliqué comment commencer à créer une application Web AngularJS. Nous avons implémenté la fonctionnalité de connexion et authentifié avec succès l'utilisateur sur la base de données Firebase.. 

Dans la deuxième partie de ce didacticiel, nous allons passer au niveau suivant en mettant en œuvre des validations, des fonctionnalités d’inscription et d’autres fonctionnalités. Le code du tutoriel ci-dessus est disponible sur GitHub.

Faites-nous savoir vos pensées dans les commentaires ci-dessous.

Assurez-vous également de consulter la vaste gamme de ressources AngularJS disponibles sur le marché Envato. Il y a tout, des directives de table CRUD aux systèmes de billetterie, etc..

Ressources AngularJS sur le marché Envato