Een inleiding tot Firebase
Het ontwikkelen van applicaties wordt steeds eenvoudiger, omdat er steeds meer platforms zijn waar weinig code wordt gebruikt. Het is dankzij platforms zoals Firebase echter ook voor doorgewinterde ontwikkelaars eenvoudiger dan ooit om uiteenlopende applicaties te creëren. We geven in deze blog een korte inleiding tot Firebase, de functies die het biedt en we geven enkele praktijkvoorbeelden van applicaties die we met Firebase hebben gemaakt.
Wat is Firebase?
Ik zal allereerst kort uitleggen wat Firebase precies is. Firebase is een platform dat door Google is ontwikkeld voor het maken van mobiele apps en webapplicaties. Het platform biedt een serverloze ontwikkelingservaring. Het is eigenlijk een soort Zwitsers zakmes voor app-ontwikkelaars, het biedt alle benodigdheden om iOS-, Android- of webapplicaties te bouwen, zoals
- back-end infrastructuur,
- controle,
- gebruikersbetrokkenheid en nog veel meer.
Het opzetten van een project in Firebase is heel eenvoudig. Je begint direct met een projectbasis en de eerste gecompliceerde taken zijn al afgehandeld. Zo blijft er meer tijd over om daadwerkelijk aan de applicatie te besteden! Een ander groot voordeel van Firebase is dat het eigenlijk een platform voor applicatieontwikkeling is met producten die naadloos met elkaar samenwerken. We hebben Firebase samen met een collega bijvoorbeeld gebruikt om een eenvoudige webapplicatie te maken. We hebben een Angular-app gemaakt die data kan lezen en schrijven naar een database en die e-mailmeldingen kan versturen. Normaal zouden we eerst tijd moeten steken in het opzetten van servers die de applicatie hosten, het creëren van een API, een database en andere zaken. Omdat we in dit geval Firebase als ontwikkelingsplatform gebruikten, was het net zo simpel als een console de opdracht firebase init geven. We konden in een mum van tijd aan de slag met het ontwikkelen van de daadwerkelijke webapplicatie zonder verdere kopzorgen over de basis.
Cloud Firestore
Cloud Firestore is een NoSQL, realtime database ontwikkeld om de zwaarste taken af te handelen van de populairste apps ter wereld. Cloud Firestore is gebouwd op de Google Cloud Platform Database-infrastructuur en biedt functies zoals multiregionale gegevensreplicatie en transacties met meerdere documenten. Je gegevens in alle client-apps worden gesynchroniseerd via realtime luisteraars en je profiteert van offline support voor mobiele apps en webapplicaties. Gebruikers kunnen zodoende responsieve apps bouwen die niet door netwerklatentie worden beïnvloed. Cloud Firestore is bovendien naadloos te integreren met andere Firebase- en Google Cloud Platform-producten.
Mijn collega en ik hebben bij het bouwen van onze simpele webapplicatie Cloud Firestore gebruikt voor het opslaan, lezen en schrijven van data. Om met de door Firebase geleverde Cloud Firestore te kunnen werken, hebben we AngularFireStore van AngularFire gebruikt. AngularFireStore is een tool om het werken met Firebase en Angular nog eenvoudiger te maken. We hebben bij het gebruik van Cloud Firestore gemerkt dat het een realtime database is. Dit betekent dat de database bij het updaten alle relevante apparaten op de hoogte brengt. Onze tabel werd bijvoorbeeld elke keer bijgewerkt als er een nieuw of aangepast veld aan de database was toegevoegd. En daar was geen hogere wiskunde voor nodig!
Een ander voordeel van Cloud Firestore is dat gebruikers de datastructuur slechts eenmalig hoeven te definiëren. Stel dat we een nieuw veld in ons dataproject willen. Dan hoeven we dit veld alleen maar toe te voegen aan onze interface voor objecten zonder dat het veld ook op andere plekken moet worden toegevoegd.
Cloud Functions
Om wat back-end functionaliteit te kunnen leveren, biedt Firebase Cloud Functions.
Cloud Functions zijn JavaScript-functies die worden uitgevoerd bij bepaalde event-emitters. We hebben Cloud Functions bijvoorbeeld gebruikt om een e-mailfunctie te koppelen aan onze simpele webapplicatie. De Cloud Function reageerde op een specifiek http-verzoek. Er werd via nodemailer een e-mail verzonden zodra dit verzoek door een event werd geactiveerd. We hebben een andere Cloud Function gebruikt om Captcha-verzoeken af te handelen.
Cloud Functions kunnen zoals je ziet op diverse manieren worden ingezet. Ze reageren niet alleen op http-verzoeken, maar ook op Firestore-triggers. Er kan aanvullende logica uit worden gevoerd terwijl gegevens worden gemaakt, bijgewerkt of verwijderd. Je kunt bijvoorbeeld een teller verhogen elke keer als er een nieuw record wordt opgeslagen in de Firestore.
Deze Cloud Functions zijn bovendien niet toegankelijk voor de klant zodat reverse-engineering niet mogelijk is en er een verbeterde veiligheid kan worden gegarandeerd. Mocht je aanpassingen willen doorvoeren dan kan er ook een API worden gebouwd met deze Cloud Functions, maar houd wel rekening met de quota.
Firebase hosting
We hadden ook een host nodig voor onze webapplicatie. We kozen Firebase Hosting als statische webhost. Het mooie aan Firebase Hosting is dat je webapplicaties op SSD's over de hele wereld worden gecachet om iedereen op elke locatie een lage latentie-ervaring te bieden. Je profiteert bovendien van gratis SSL-certificaten zonder dat daar uitgebreide configuratie voor is vereist.
En wat kost het?
Firebase biedt twee opties: het Spark Plan (gratis) en het Blaze Plan (pay-as-you-go). Voor sommige functies, zoals geplande Cloud Functions, is Blaze Plan vereist. Ga voor meer informatie en een uitgebreid overzicht van de abonnementskosten naar deze pagina.
Conclusie
Ik hoop dat je wat nieuwe dingen hebt geleerd van deze inleiding tot Firebase. Firebase biedt alle benodigdheden om hoogwaardige mobiele apps of webapplicaties te bouwen. Firebase is meer dan alleen Cloud Functions, Firestore en hosting. Het biedt oplossingen voor verificatie, opslag van bestanden, geautomatiseerde testen, machine learning en nog veel meer.
Je moet bij al deze voordelen wel één ding onthouden: de infrastructuur is gebaseerd op Google (cloud).
Wij vinden dit eerlijk gezegd geen probleem. Je bespaart ongelooflijk veel tijd omdat je deze functionaliteiten niet allemaal zelf hoeft in te stellen en je profiteert van een toekomstbestendige oplossing. De keuze voor Firebase is dan ook snel gemaakt.