Realtidsdatabas – Firebase(Intro)

En realtidsdatabas är en typ av databas som ger omedelbara, liveuppdateringar till anslutna klienter. Detta innebär att när data ändras i databasen får alla användare som har åtkomst till den uppdateringarna omedelbart, utan att behöva uppdatera sidan eller begära den senaste datan. Men först behöver vi kolla vad Frontend och backend utveckling betyder.

Frontend-utveckling (klient-sidan)

Frontend är den del av en applikation som användaren ser och interagerar med. Det handlar om att bygga användargränssnittet (UI) och skapa en bra användarupplevelse (UX).

Teknologier inom frontend:

  • HTML – Strukturen för webbsidan (rubriker, text, bilder, formulär, etc.).
  • CSS – Styr utseendet (färger, layout, typsnitt, animationer).
  • JavaScript – Lägger till interaktivitet (t.ex. klickhändelser, dynamiska uppdateringar).
  • Ramverk och bibliotek – För att effektivisera utvecklingen, t.ex.:
    • React (som ni använder i kursen) – Ett JavaScript-bibliotek för att bygga komponentbaserade gränssnitt.
    • Vue.js och Angular – Alternativa ramverk för frontend.

Backend-utveckling (server-sidan)

Backend är den del av applikationen som hanterar logik, databaser och serverkommunikation. Java, C#, databaser, etc

Hur hänger frontend och backend ihop?

  1. Frontend skickar en förfrågan till backend (t ex via API).
  2. Backend bearbetar förfrågan (hämtar eller lagrar data i databasen).
  3. Backend skickar tillbaka ett svar till frontend.
  4. Frontend uppdaterar gränssnittet baserat på svaret.

Exempel: Om en användare loggar in på en webbplats byggd med React:

  • Frontend (React) tar emot användarens inloggningsuppgifter och skickar dem till backend.
  • Backend kontrollerar om uppgifterna är korrekta.
  • Om de är rätt, skickas ett svar till frontend och användaren blir inloggad.

Firebase Realtime Database

Firebase Realtime Database är en molnbaserad NoSQL-databas från Google Firebase som gör det möjligt för utvecklare att lagra och synkronisera data i realtid över flera klienter.

NoSQL-databaser är byggda för att hantera ofta ostrukturerad eller halvstrukturerad, och används särskilt inom webbappar, big data och realtidsapplikationer.

NoSQL-databaser lagrar data i olika format som JSON, dokument och nyckel-värde-par. NoSQL-databaser kräver inte en fördefinierad struktur (schema), vilket gör det enklare att ändra och anpassa datan under utvecklingen.

Viktiga Funktioner:

Realtidssynkronisering:
  • Data uppdateras omedelbart på alla anslutna enheter när ändringar sker.
NoSQL JSON-struktur:
  • Firebase lagrar data i en JSON-trädstruktur, vilket gör den enkel att läsa och skriva.
Offline-stöd:
  • Firebase lagrar data lokalt om en användare är offline och synkroniserar den automatiskt när de återansluter.
Skalbarhet:
  • Perfekt för små till medelstora applikationer.

Hur Det Fungerar:

  • När en klient skriver data uppdateras Firebase den i molnet och skickar omedelbara uppdateringar till alla anslutna klienter.
  • Klienter kan lyssna på ändringar och få notifieringar när data uppdateras.

Exempel på Användningsområden:

💬 Chattappar:

  • Meddelanden visas omedelbart för alla användare utan att behöva uppdatera sidan.

📊 Live-dashboards:

  • Visar realtidsdata såsom aktiekurser, användaraktivitet eller sensorinformation.

🎮 Flerspelarspel:

  • Visar Leaderbord

Om du använder Firebase som din databas och backend-lösning kan du i många fall undvika att skriva en traditionell backend och ändå utveckla en fullstack-applikation endast med React.

Firebase är en Backend-as-a-Service (BaaS), vilket innebär att det hanterar många vanliga backend-funktioner åt dig.

Behöver du traditionell backend-programmering?

I många fall nej, eftersom Firebase redan erbjuder:

  • Databas som kan hanteras direkt från frontend.
  • Autentisering utan att skapa en egen backend.
  • Filhantering (Firebase Storage)

Men ibland kan en backend ändå vara nödvändig, exempelvis om:

  • Du har komplex logik som inte bör ligga på klienten.
  • Du behöver integrera med externa API:er eller databaser som Firebase inte stödjer direkt.
  • Du vill ha mer kontroll över databasen och säkerheten.

Scroll to Top