Hoe bouw je met succes een API met Firebase?

Firebase is een applicatie-ontwikkelingsplatform dat in 2012 werd gelanceerd en twee jaar later door Google werd overgenomen. In het begin werd Firebase gezien als een database voor realtime applicaties, maar Google zag het potentieel ervan in en besloot er extra diensten aan toe te voegen.

Momenteel is Firebase een BaaS-systeem (backend as a service) met 18 services om het maken van web- en mobiele applicaties te vergemakkelijken. Onder de bedrijven die de BaaS-services van Firebase gebruiken, zijn Accenture, Alibaba Travels, Stack, Twitch en Instacart, samen met meer dan 2.300 anderen.

Voordelen van het gebruik van Firebase

De eerste van de diensten die Firebase aanbood, was de realtime database en het blijft een van de grootste trekkingen. Firebase Realtime-databases worden gehost in de cloud, slaan gegevens op in JSON-indeling en synchroniseren in realtime met elke client die ermee is verbonden. Of u nu de iOS SDK, Android SDK of JavaScript SDK gebruikt, alle toepassingen die zijn verbonden met een Firebase Realtime-database delen één instantie van de database en worden altijd up-to-date gehouden met de nieuwste gegevens.

Cloud Firestore is een andere interessante Firebase-service. Het is een NoSQL-documentdatabase die is ontworpen om gegevensopslag, synchronisatie en query’s voor mobiele en web-apps op wereldwijde schaal te vergemakkelijken. Door hiërarchieën te creëren om gerelateerde gegevens op te slaan en expressieve zoekopdrachten om gegevens op te halen, kan het volledige potentieel van Cloud Firestore worden gerealiseerd. Query’s worden op hun beurt geschaald op basis van de grootte van de resultaten in plaats van de grootte van de gegevensset. Hierdoor kunnen applicaties vanaf het begin worden geschaald zonder te wachten tot het moment waarop de behoefte de capaciteit overschrijdt.

Naast de bovengenoemde databasediensten biedt Firebase onder andere ook hostingdiensten, bestandsopslag, functies (AWS Lambda-stijl).

Een API maken

API’s zijn een manier om services te leveren die uw eigen apps of apps van derden kunnen gebruiken. Met Firebase kunt u aangepaste services leveren die op hun beurt gebruikmaken van de eigen services van Firebase, zonder dat u een backend voor die services hoeft in te stellen. U kunt bijvoorbeeld toegang bieden tot een realtime database van Firebase voor toepassingen van derden om informatie op te vragen die is verzameld door industriële sensoren.

De eerste stap bij het maken van een API in Firebase is toegang krijgen tot de Firebase-console en voeg een project toe door op “Project toevoegen” te klikken en het nieuwe project een naam te geven. Google geeft u de mogelijkheid om Google Analytics in te schakelen voor uw nieuwe project. Het wordt aanbevolen om deze aanbeveling te accepteren, omdat u voordelen krijgt zoals A/B-testen en een breed scala aan statistische rapporten van uw API.

  18 Essentiële software die elke datawetenschapper moet kennen

Nadat u uw project hebt gemaakt, kunt u de Firebase-services selecteren die uw API zal gebruiken. Om deze taak te illustreren, zullen we zien hoe u de Firebase Realtime-databaseservice gebruikt.

Een realtime database opzetten in Firebase

Klik in de navigatiebalk aan de linkerkant, in het gedeelte Ontwikkelen, op Realtime Database. Rechts verschijnt een knop “Database maken”. Klik erop om uw eerste database in Firebase te maken.

Vervolgens moet u kiezen tussen verschillende geografische locatie-opties voor uw nieuwe database. Selecteer degene die het dichtst bij uw gebruikers staat. Dit is een belangrijk aspect om de latentie van uw API te minimaliseren, met name in realtime apps.

De volgende stap is het configureren van de basisbeveiligingsregels voor uw database. U kunt kiezen voor de vergrendelde modus en vervolgens indien nodig toegangsrechten toewijzen, of u kunt kiezen voor de testmodus, die alle lees- en schrijfbewerkingen mogelijk maakt.

U kunt beginnen met de testmodusoptie om de beveiligingsinstellingen in het begin niet ingewikkeld te maken. U kunt altijd later regels maken om de beveiligingsconfiguratie gedetailleerder in te stellen.

Zodra u klaar bent met het configureren van uw database, wordt de bijbehorende API ook ingeschakeld in het gedeelte API’s en services van uw persoonlijke console in Google Cloud Platform.

De Firebase API programmeren

Op dit moment hebt u de basiselementen van uw project al geconfigureerd in de Firebase-console. De volgende stap is het schrijven van uw API-code. Om dat te doen, moet u de Firebase-hosting en -functies op uw lokale computer initialiseren. U kunt firebase-tools installeren met npm:

npm install -g firebase-tools

Vervolgens kunt u inloggen op firebase en uw project initialiseren met de volgende opdrachten:

firebase login firebase init

Er wordt een welkomstscherm weergegeven waarin Firebase u informeert over de map waarin uw project wordt geïnitialiseerd en er verschijnt een menu met opties.

Selecteer in dat menu Functies en Hosting (met de Hosting-optie kunt u een aangepaste URL hebben voor de API die u gaat ontwikkelen). Kies vervolgens uit de lijst de Firebase-app die u eerder hebt gemaakt, waarna u de taal moet selecteren die u wilt gebruiken. Om een ​​web-API te ontwikkelen, kunt u kiezen voor JavaScript.

Als u pakketafhankelijkheden wilt gebruiken, installeer deze dan met npm in de functiemap. Vervolgens kunt u beginnen met het schrijven van de code voor uw functies. Vergeet niet om de pakketten firebase-functies en firebase-admin op te nemen, samen met alle andere pakketten die u nodig hebt:

import * as functions from 'firebase-functions'; 
import * as admin from 'firebase-admin';

Om de realtime database te gebruiken, moet u de URL ervan opgeven bij het initialiseren van uw JavaScript SDK. De URL bevindt zich in het gedeelte Realtime Database van de Firebase-console. Je herkent het aan het formaat:

https://<database-name>.<region>.firebasedatabase.app

U kunt het volgende fragment gebruiken om uw SDK te initialiseren, waarbij u de gegevens vervangt die overeenkomen met het configuratieobject van uw project:

var config = {
  apiKey: "apiKey",
  authDomain: "projectId.firebaseapp.com",
  databaseURL: "https://databaseName.firebaseio.com",
  storageBucket: "bucket.appspot.com"
};
firebase.initializeApp(config);
var database = firebase.database();

Nadat u de code van uw API-functie hebt geschreven, is het tijd om te implementeren. Maar voordat u dit doet, moet u enkele wijzigingen aanbrengen in firebase.json, door de volgende regels toe te voegen, aangepast aan uw projectconfiguratie:

"rewrites": [
     {
       "source": "/api/v1/**",
       "function": "webApi"
     }
]

De volgende stap is de implementatie. De eerste keer dat u een volledige implementatie moet uitvoeren, voert u de opdracht uit:

firebase deploy

Bij volgende implementaties kunt u alleen de functies implementeren met behulp van de parameter –only functions.

  Ophalen uitschakelen waar u was gebleven in MS Word?

Na het uitvoeren van de deploy-opdracht geeft de Firebase CLI de URL weer van de HTTP-eindpunten van uw functies in de terminal, die u kunt gebruiken om uw API’s aan te roepen vanuit een webtoepassing. De URL bevat uw project-ID en een regio voor de HTTP-functie. De volgende URL kan bijvoorbeeld worden gebruikt om een ​​itemquery-functie aan te roepen door deze itemid=1 als parameter door te geven:

https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1

Om de functie uit te voeren, opent u de URL met de bijbehorende parameters in een browser.

Houd er rekening mee dat voor implementatie in de productieomgeving een abonnement op het Firebase Blaze-abonnement vereist is, dat is betalen per gebruik, zoals u kunt lezen op de Firebase-prijspagina. Het is een service na facturering, wat betekent dat u aan het einde van elke maand wordt gefactureerd voor uw gebruik.

Als u geen Blaze-abonnement hebt, geeft de opdracht deploy uw API-URL niet weer. In plaats daarvan ziet u een bericht waarin staat dat u zich moet abonneren op het Blaze-abonnement als u wilt implementeren in de runtime-omgeving. In dit geval kunt u Firebase Local Emulation Suite nog steeds gebruiken om toepassingen op uw lokale computer te bouwen en te testen in plaats van ze te implementeren in de Firebase-productieomgeving. Lokaal testen is handig om onnodige kosten tijdens het ontwikkelen van applicaties te voorkomen, aangezien elke testrun kosten voor uw account kan veroorzaken.

Lokaal testen en prototypen

De tool Local Emulator Suite biedt een geïntegreerde gebruikersinterface die het maken van prototypes eenvoudig en nuttig maakt voor het testen van uw apps op uw lokale computer.

Met de gebruikersinterface van de Emulator Suite kunt u onder andere uw databaseontwerpen, uw Cloud Functions-workflows testen, de prestaties van backend-services analyseren en wijzigingen in beveiligingsregels evalueren. Het is in feite een veilige sandbox om uw API-functionaliteit te testen voordat u deze naar een productieomgeving stuurt.

  Hoe speel je Wii U-spellen op je pc met Cemu

Om uw functies te emuleren of uw toepassing lokaal te testen, voert u firebase emulators:start uit. U moet Java hebben geïnstalleerd om Firestore Emulator te kunnen gebruiken. Als je het niet hebt, kun je het installeren vanaf hier.

Wanneer u Firestore Emulator aanroept, retourneert de opdracht een URL waarmee u de gebruikersinterface van de Emulator Suite in uw browser kunt openen. Standaard is deze URL localhost:4000, maar dit kan per computer verschillen.

U krijgt ook een volledige URL voor uw HTTP-functie. Deze URL ziet er ongeveer zo uit:

http://localhost:5001/apiproject-8753c/us-central1/itemQuery

alleen heeft het de naam van je project, de naam van je functie, en het kan ook een ander poortnummer hebben op je lokale computer.

Om de functie te testen, kopieert u de URL die door de emulator wordt geretourneerd, voegt u de nodige parameters toe (bijv. ?itemid=1) en voert u deze in op een nieuw tabblad van uw browser. De resultaten van de API-uitvoering verschijnen in de gebruikersinterface van Emulator Suite.

Op het tabblad Logboeken ziet u nieuwe logboeken die aangeven dat de functie itemQuery() is uitgevoerd. Als uw functie nieuwe gegevens in uw Firestore-database genereert, ziet u deze op het tabblad Firestore.

Meer bekendheid krijgen voor uw API

Als u wilt dat de API’s die u ontwikkelt populair worden, kan Firebase u daar ook bij helpen. Niet alleen omdat het u in staat stelt uw applicatie sneller te bouwen, waardoor u veel werk uit handen neemt om backend-services in gebruik te nemen, maar ook door u te helpen bij uw productpositionering. Hoe is dat mogelijk? Simpelweg omdat apps die zijn gekoppeld aan Firebase beter scoren in de zoekresultaten dan andere applicaties.

Houd ook rekening met de app-indexerings-API van Firebase. Deze tool verbetert de zoekrangschikking van app-links en helpt gebruikers de gewenste inhoud te vinden. Het plaatst ook de knop Installeren achter de startknop van uw app, zodat geïnteresseerde gebruikers slechts één klik verwijderd zijn van gebruikers van uw app.

Kortom, Firebase biedt u niet alleen back-endservices die de ontwikkeling van uw API drastisch versnellen, maar als deze eenmaal in gebruik is en aan de wereld wordt blootgesteld, helpt het u ook om het te promoten – en er geld mee te verdienen.

gerelateerde berichten