Een webapp maken van kras met behulp van AngularJS en Firebase

In deze serie zullen we AngularJS en Firebase gebruiken om een ​​eenvoudige webtoepassing helemaal opnieuw te maken. Het zal een eenvoudige blogtoepassing zijn waarbij de gebruiker kan inloggen of zich kan aanmelden en een blogpost kan publiceren.

Deze tutorial veronderstelt dat je basiskennis hebt van AngularJS, maar het zou niet moeilijk moeten zijn om de onderwerpen onderweg op te pikken. Als je worstelt met bugs of fouten die je niet lijkt op te lossen, probeer dan een van de expert bug fixers op Envato Studio.

Introductie tot AngularJS

AngularJS is een van de meest gewilde JavaScript MVC-frameworks. Het is een structureel raamwerk voor het creëren van dynamische webtoepassingen door HTML-mogelijkheden uit te breiden. Functies zoals databinding en afhankelijkheidsinjectie maken het gemakkelijker om apps te ontwikkelen met minder code.

Uit de AngularJS-documentatie:

HTML is geweldig voor het declareren van statische documenten, maar het blijft hangen wanneer we het gebruiken om dynamische weergaven in webtoepassingen te declareren. Met AngularJS kunt u de HTML-woordenschat uitbreiden voor uw toepassing. De resulterende omgeving is buitengewoon expressief, leesbaar en snel te ontwikkelen.

Inleiding tot Firebase

Stel je voor dat je een webtoepassing maakt zonder je zorgen te hoeven maken over de achterkant. Firebase maakt het mogelijk om gegevens in realtime te synchroniseren met onze applicatie zonder zich zorgen te maken over de back-end. Het enige wat we moeten doen is een aantal API-aanroepen doen.

Firebase is een krachtige API om gegevens in realtime op te slaan en te synchroniseren. Het combineren van de kracht van AngularJS bidirectionele datumbinding met Firebase resulteert in een driewegsynchronisatie die vrij ontzagwekkend is.

Aan de slag met AngularJS

De hoekige zaden project is een standaardplaatje om te beginnen met het maken van webapps met AngularJS. Download of kloont de hoekige zaden project van de repository. 

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

Navigeer naar de projectdirectory en installeer de vereiste afhankelijkheden.

$ cd angular-seed $ npm install ## Installeer de afhankelijkheden

Start de knoopserver:

$ npm start ## Start de server

Richt uw browser op http: // localhost: 8000 / app / index.html en je zou de standaard app moeten zien draaien.

Navigeer naar de app map naar binnen hoekige zaden. Dit is waar de applicatiecode zich bevindt. Binnen in de app map die je zult vinden app.js wat de kern van de app is. We zullen alle modules en routes op app-niveau binnen dit bestand declareren. Standaard is de hoekige zaden project heeft twee opvattingen, view1 en view2. Verwijder de mappen view1 en view2 vanuit de app-map. 

Laten we bij nul beginnen. Doe open app.js en verwijder de bestaande code. In app.js we zullen onze toepassingsroutes definiëren, bijvoorbeeld hoe een aanvraag als te behandelen /huis. Voor het definiëren van routes hebben we een AngularJS-module ngRoute nodig. Gebruiken ngRoute we moeten het eerst injecteren of toevoegen aan onze applicatie. We gebruiken angular.module om de. Toe te voegen ngRoute module voor onze app zoals hieronder getoond: 

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

De ngRoute module heeft een component genaamd $ routeProvider, wat handig is voor het configureren van routes. We zullen injecteren $ routeProvider in de config methode van angular.module en definieer onze routes in zijn callback-functie zoals hieronder getoond:

'gebruik strikt'; angular.module ('myApp', ['ngRoute']). config (['$ routeProvider', functie ($ routeProvider) // Routes zijn hier]);

Open vervolgens index.html en verwijder de scriptverwijzingen naar view1 en view2. Verwijder alles uit het lichaam van index.html behalve de scriptreferenties en de div die hieronder wordt getoond met de opdracht ngView. 

ngView is een richtlijn die ertoe bijdraagt ​​dat het aanzicht met een bepaalde route in de hoofdlay-out wordt weergegeven, index.html. Dus elke keer dat de route verandert, verandert de inhoud van de hierboven getoonde div.

Laten we nu een nieuwe weergave maken voor de gebruiker om in te loggen. Binnen de app map maak een nieuwe map genaamd huis. Binnen huis, maak twee bestanden genaamd home.html en home.js. Doe open home.html en neem de volgende HTML-code op:

     AngularJS & Firebase Web App      

AngularJS & Firebase-app!

Zoals te zien is in de bovenstaande code, zullen we Bootstrap gebruiken om onze applicatie-views te maken.

Binnen home.js, we verklaren de routes voor de toepassing om toegang te krijgen tot de startweergave. $ routeProvider  heeft een methode genaamd wanneer, die we gebruiken om een ​​route te maken voor onze thuisweergave. Wanneer u een nieuwe route definieert, stellen we een templateUrl welke zou worden gerenderd in de index.html. Samen met dat zullen we ook een instellen controleur voor de nieuw gecreëerde $ scope van de thuisweergave. Een controller is een logica die een bepaalde weergave bestuurt. Hier is hoe het eruit zou moeten zien:

'gebruik strikt'; angular.module ('myApp.home', ['ngRoute']) // Opgegeven route .config (['$ routeProvider', function ($ routeProvider) $ routeProvider.when ('/ home', templateUrl: 'home /home.html ', controller:' HomeCtrl ');]) // Home controller .controller (' HomeCtrl ', [function () ]);

Open nu app.js en neem de thuismodule op myApp.home in de app. Verklaar ook de standaardroute van onze applicatie met behulp van de $ routeProvider.otherwise methode voor de thuisweergave.

'gebruik strikt'; angular.module ('myApp', ['ngRoute', 'myApp.home' // Nieuw toegevoegde thuismodule]). config (['$ routProvider', function ($ routeProvider) // Stel de standaardweergave van onze app in op home $ routeProvider.otherwise (redirectTo: '/ home');]);

Vervolgens moeten we de startpagina opnemen om de startpagina weer te geven home.js in het HTML-hoofdsjabloonbestand van de app. Doe open index.html en omvatten het volgende:

Start de server opnieuw op en wijs uw browser naar http: // localhost: 8000 / app / index.html en u zou het inlogscherm moeten zien:

Aan de slag met Firebase

Om aan de slag te kunnen gaan, moeten we registreren voor een gratis account op Firebase. Na een geslaagde aanmelding ontvangen we een scherm zoals dit:  

Noteer de URL van de gemaakte app en klik op de App beheren knop. We gebruiken deze Firebase-URL om te communiceren met de Firebase-database.

We gebruiken Firebase om onze toepassing te verifiëren met een e-mailadres en wachtwoord. Om het werkend te krijgen, moeten we het inschakelen vanuit Firebase. Klik vanuit het dashboard op de Inloggen en authenticeren tab in het menu aan de linkerkant. In dat scherm, onder de Email Wachtwoord tab, vink aan Schakel e-mail en wachtwoordverificatie in zoals getoond:

Voeg een nieuwe gebruiker toe met een E-mail en Wachtwoord waartegen we zullen authenticeren na implementatie van de sign-in functionaliteit.

Implementatie van aanmeldfunctionaliteit

Voer de volgende scripts in om aan de slag te gaan met het gebruik van Firebase app / index.html:

  

Vervolgens moeten we de firebase module in home.js. Voeg de toe firebase module in home.js zoals hieronder getoond:

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

Nu zijn we klaar om te communiceren met Firebase. Doe open home.js en van binnen HomeCtrl, maak een nieuwe functie aan genaamd Aanmelden om de gebruiker te authenticeren. We zullen gebruiken $ scope om de nieuwe functie te maken. $ scope is een object dat verwijst naar het applicatiemodel en ook fungeert als lijm tussen de applicatiecontroller en de weergave. Daarom injecteren we de $ scope object in de Aanmelden functioneer zodat het objectmodel vanuit het zicht toegankelijk is binnen de Aanmelden functie.

$ scope.SignIn = function ($ scope) var gebruikersnaam = $ scope.user.email; var wachtwoord = $ scope.user.password; // Auth Logic is here

Vervolgens naar binnen HomeCtrl maak een Firebase-instantie met de Firebase-URL zoals weergegeven:

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

De $ firebaseSimpleLogin module wordt gebruikt om te authenticeren tegen Firebase met behulp van een e-ID en wachtwoord. Om het te gebruiken, moeten we de $ firebaseSimpleLogin module in HomeCtrl zoals getoond:

.controller ('HomeCtrl', ['$ scope', '$ firebaseSimpleLogin', function ($ scope, $ firebaseSimpleLogin) 

Gebruik makend van firebaseObj Maak een $ firebaseSimpleLogin voorbeeld zoals getoond:

var loginObj = $ firebaseSimpleLogin (firebaseObj);

Nu gebruiken we de $ login API om de e-mail-ID en het wachtwoord voor Firebase te verifiëren. loginObj. $ login neemt de e-mail en het wachtwoord op als parameters. Na succesvolle authenticatie krijgen we een callback voor succes en bij een niet-geslaagde authenticatie krijgen we een foutmelding. 

$ scope.SignIn = function (event) event.preventDefault (); // Om formuliervernieuwing te voorkomen var gebruikersnaam = $ scope.user.email; var wachtwoord = $ scope.user.password; loginObj. $ login ('wachtwoord', email: gebruikersnaam, wachtwoord: wachtwoord) .then (functie (gebruiker) // callback console.log ('Authentication successful');, function (error) // Failure callback console.log ('Authentication failure');); 

Nu dat de bovenstaande controllercode werkt, moeten we de controller aan de weergave koppelen. AngularJS biedt een instructie genaamd ngController om een ​​controller aan een weergave te koppelen. Doe open home.html en voeg de ngController richtlijn voor de lichaam element om aan te hechten HomeCtrl.

We hebben de e-mail- en wachtwoordwaarden nodig om toegankelijk te zijn binnen de Aanmelden regelaar functie. AngularJS biedt een richtlijn met de naam ngModel om de waarde ervan te binden $ scope zodat het toegankelijk is binnen de Aanmelden functie. Omvat de ngModel richtlijn voor de e-mail en het wachtwoord invoer elementen zoals getoond:

 

AngularJS & Firebase-app!

Voeg ten slotte de ngClick-richtlijn toe aan de aanmeldknop om de Aanmelden functie:

Sla alle wijzigingen op en start de server opnieuw op. Richt uw browser op http: // localhost: 8000 / app / index.html # / home en probeer in te loggen met de e-mail-ID [email protected] en wachtwoord vlaamse gaai. Na succesvolle gebruikersauthenticatie zou u het bericht moeten zien Authenticatie succesvol in de browserconsole.

Conclusie

In deze zelfstudie hebben we bekeken hoe u aan de slag kunt gaan met het maken van een AngularJS-webtoepassing. We hebben de inlogfunctionaliteit geïmplementeerd en de gebruiker succesvol geverifieerd tegen de Firebase-database. 

In het tweede deel van deze zelfstudie nemen we dit naar het volgende niveau door validaties, aanmeldingsfunctionaliteit en enkele andere functies te implementeren. Code van de bovenstaande tutorial is beschikbaar op GitHub.

Laat het ons weten in de reacties hieronder.

Bekijk ook het uitgebreide aanbod aan AngularJS-bronnen op Envato Market. Er is alles van CRUD-tabelrichtlijnen tot ticketingsystemen en meer.

AngularJS-middelen op Envato Market