Hvordan opbygger man en API med Firebase?

Firebase er en applikationsudviklingsplatform, der blev lanceret i 2012 og købt af Google to år senere. I sin begyndelse var Firebase kun tænkt som en database til realtidsapplikationer, men Google så dets potentiale og besluttede at tilføje yderligere tjenester til den.

I øjeblikket er Firebase et BaaS (backend as a service) system med 18 tjenester til at lette oprettelsen af ​​web- og mobilapplikationer. Blandt de virksomheder, der bruger Firebases BaaS-tjenester, er Accenture, Alibaba Travels, Stack, Twitch og Instacart sammen med mere end 2.300 andre.

Fordele ved at bruge Firebase

Den første af de tjenester, Firebase tilbød, var dens realtidsdatabase, og den er fortsat en af ​​dens største trækplastre. Firebase-realtidsdatabaser hostes i skyen, lagrer data i JSON-format og synkroniseres i realtid med hver klient, der er tilsluttet dem. Uanset om du bruger iOS SDK, Android SDK eller JavaScript SDK, deler alle applikationer, der er forbundet til en Firebase Realtime-database, én forekomst af databasen, som altid holdes ajour med de seneste data.

Cloud Firestore er en anden interessant Firebase-tjeneste. Det er en NoSQL-dokumentdatabase designet til at lette datalagring, synkronisering og forespørgsel til mobil- og webapps på globalt plan. Oprettelse af hierarkier til at gemme relaterede data og udtryksfulde forespørgsler til at hente data gør det muligt at realisere det fulde potentiale i Cloud Firestore. Til gengæld skaleres forespørgsler baseret på størrelsen af ​​resultaterne snarere end datasættets størrelse. Dette giver applikationer mulighed for at skalere fra begyndelsen uden at vente til det øjeblik, hvor behovene overstiger kapaciteten.

Udover de førnævnte databasetjenester tilbyder Firebase blandt andet også hostingtjenester, fillagring, funktioner (AWS Lambda-stil).

Oprettelse af en API

API’er er en måde at levere tjenester på, som dine egne eller tredjepartsapps kan bruge. Firebase giver dig mulighed for at levere tilpassede tjenester, der til gengæld gør brug af Firebases egne tjenester uden besværet med at oprette en backend til disse tjenester. Du kan for eksempel tilbyde adgang til en Firebase-realtidsdatabase til tredjepartsapplikationer for at forespørge efter information indsamlet af industrielle sensorer.

Det første trin i at oprette en API i Firebase er at få adgang til Firebase-konsol og tilføj et projekt ved at klikke på “Tilføj projekt” og give det nye projekt et navn. Google giver dig mulighed for at aktivere Google Analytics for dit nye projekt. Det anbefales at acceptere denne anbefaling, da du vil få fordele såsom A/B-test og en lang række statistiske rapporter fra din API.

  Sådan får du en QR-kode til din LinkedIn-profil

Når du har oprettet dit projekt, vil du være i stand til at vælge de Firebase-tjenester, som din API vil bruge. For at illustrere denne opgave vil vi se, hvordan du bruger Firebase Realtime-databasetjenesten.

Opsætning af en realtidsdatabase i Firebase

I navigationslinjen til venstre, inde i Udvikl-sektionen, skal du klikke på Realtime Database. En “Opret database”-knap vises til højre. Klik på den for at oprette din første database i Firebase.

Dernæst skal du vælge mellem flere geografiske placeringsmuligheder for din nye database. Vælg den, der er tættest på dine brugere. Dette er et vigtigt aspekt for at minimere forsinkelsen af ​​din API, især i realtidsapps.

Det næste trin er at konfigurere de grundlæggende sikkerhedsregler for din database. Du kan vælge låst tilstand og derefter tildele adgangstilladelser efter behov, eller vælge testtilstand, som muliggør al læsning og skrivning.

Du kan starte med testtilstandsindstillingen for ikke at komplicere sikkerhedsindstillingerne i begyndelsen. Du kan altid oprette regler senere for at indstille sikkerhedskonfigurationen med større granularitet.

Så snart du er færdig med at konfigurere din database, aktiveres den tilsvarende API også i din personlige konsols API’er og tjenester i Google Cloud Platform.

Programmering af Firebase API

På dette tidspunkt har du allerede de grundlæggende elementer i dit projekt konfigureret i Firebase-konsollen. Det næste trin er at skrive din API-kode. For at gøre det skal du initialisere Firebase-hosting og funktioner på din lokale computer. Du kan installere firebase-værktøjer ved hjælp af npm:

npm install -g firebase-tools

Derefter kan du logge på firebase og initialisere dit projekt med følgende kommandoer:

firebase login firebase init

En velkomstskærm vil blive vist, hvor Firebase informerer dig om mappen, hvor dit projekt vil blive initialiseret, og en menu med muligheder vises.

I den menu skal du vælge Funktioner og hosting (hosting-indstillingen giver dig mulighed for at have en brugerdefineret URL til den API, du vil udvikle). Vælg derefter fra listen den Firebase-app, du oprettede tidligere, hvorefter du skal vælge det sprog, du vil bruge. For at udvikle en web-API kan du vælge JavaScript.

  Sådan får du en virtuel hjemmeknap på iPhone X

Hvis du vil bruge pakkeafhængigheder, skal du installere dem med npm inde i mappen funktioner. Derefter kan du begynde at skrive koden til dine funktioner. Husk at inkludere firebase-funktionerne og firebase-admin-pakkerne sammen med alle andre pakker, du har brug for:

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

For at bruge realtidsdatabasen skal du angive dens URL, når du initialiserer dit JavaScript SDK. URL’en er placeret i Realtime Database-sektionen af ​​Firebase-konsollen. Du kan genkende det på dets format:

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

Du kan bruge følgende kodestykke til at initialisere dit SDK, og erstatte de data, der svarer til dit projekts konfigurationsobjekt:

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

Når du har skrevet koden til din API-funktion, er det tid til at implementere. Men før du gør det, skal du foretage nogle ændringer i firebase.json, tilføje følgende linjer, ændret i henhold til din projektkonfiguration:

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

Næste skridt er implementering. Første gang skal du udføre en komplet implementering ved at udføre kommandoen:

firebase deploy

I efterfølgende implementeringer vil du kun være i stand til at implementere funktionerne ved at bruge parameteren –only functions.

Efter at have udført implementeringskommandoen, viser Firebase CLI URL’en på HTTP-endepunkterne for dine funktioner i terminalen, som du kan bruge til at kalde dine API’er fra en webapplikation. URL’en indeholder dit projekt-id og en region for HTTP-funktionen. For eksempel kan følgende URL bruges til at kalde en vareforespørgselsfunktion ved at sende den itemid=1 som en parameter:

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

For at udføre funktionen skal du åbne URL’en med de tilsvarende parametre i en browser.

Bemærk, at implementering til produktionsmiljøet kræver et abonnement på Firebase Blaze-planen, som er pay-as-you-go, som du kan læse på Firebase-prissiden. Det er en post-billing service, hvilket betyder, at du bliver faktureret for dit forbrug i slutningen af ​​hver måned.

Hvis du ikke har et Blaze-abonnement, viser implementeringskommandoen ikke din API-URL. I stedet vil du se en meddelelse, der informerer dig om, at du skal abonnere på Blaze-planen, hvis du vil implementere til runtime-miljøet. I dette tilfælde kan du stadig bruge Firebase Local Emulation Suite til at bygge og teste applikationer på din lokale maskine i stedet for at implementere dem i Firebase-produktionsmiljøet. Lokal test er nyttig for at undgå unødvendige omkostninger under applikationsudvikling, da hver testkørsel kan generere gebyrer på din konto.

  Sådan opsætter du en NFS-share i Webmin på Ubuntu Server

Lokal test og prototyping

Værktøjet Local Emulator Suite tilbyder en integreret brugergrænseflade, der gør prototyper nem og nyttig til at teste dine apps på din lokale maskine.

Med Emulator Suite-brugergrænsefladen kan du blandt andet teste dine databasedesign, dine Cloud Functions-arbejdsgange, analysere backend-tjenesters ydeevne og evaluere ændringer i sikkerhedsregler. Det er dybest set en sikker sandkasse til at teste din API-funktionalitet, før du sender den til et produktionsmiljø.

For at efterligne dine funktioner eller teste din applikation lokalt skal du køre firebase emulators:start. Du skal have Java installeret for at kunne bruge Firestore Emulator. Hvis du ikke har det, kan du installere det fra her.

Når du påberåber Firestore Emulator, returnerer kommandoen en URL, der giver dig mulighed for at åbne Emulator Suite-brugergrænsefladen i din browser. Som standard vil denne URL være localhost:4000, men den kan variere på hver maskine.

Du får også en fuld URL til din HTTP-funktion. Denne URL vil ligne:

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

kun det vil have navnet på dit projekt, navnet på din funktion, og det kan også have et andet portnummer på din lokale maskine.

For at teste funktionen skal du kopiere URL’en returneret af emulatoren, tilføje eventuelle nødvendige parametre (f.eks. ?itemid=1) og indtaste den i en ny fane i din browser. Resultaterne af API-udførelsen vises i Emulator Suite UI.

På fanen Logs vil du se nye logfiler, der indikerer, at itemQuery()-funktionen blev udført. Hvis din funktion genererer nye data i din Firestore-database, vil du se dem på fanen Firestore.

Få mere eksponering for din API

Hvis du ønsker, at de API’er, du udvikler, skal blive populære, kan Firebase også hjælpe dig med det. Ikke kun fordi det giver dig mulighed for at bygge din applikation hurtigere, hvilket tager meget af arbejdet med at få backend-tjenester op at køre, men også ved at hjælpe dig med din produktpositionering. Hvordan er det muligt? Simpelthen fordi apps forbundet med Firebase rangerer bedre i søgerangeringer end andre applikationer.

Tag også højde for Firebases appindekserings-API. Dette værktøj forbedrer søgerangeringen af ​​app-links og hjælper brugerne med at finde det ønskede indhold. Den placerer også knappen Installer efter knappen på din apps startside, så interesserede brugere kun er et klik væk fra at blive brugere af din app.

Afslutningsvis tilbyder Firebase dig ikke kun backend-tjenester, der dramatisk fremskynder udviklingen af ​​din API, men når den først er oppe at køre og eksponeret for verden, hjælper den dig også med at promovere den – og tjene penge på den.