← Tilbage til databaser

Firebase

NoSQL

Googles mobil- og webapplikationsplatform med realtids NoSQL cloud-database.

Beskrivelse

Firebase er en omfattende Backend-as-a-Service (BaaS) platform fra Google der inkluderer Firestore (dokumentdatabase), Realtime Database (JSON-træ), Authentication, Storage, Hosting, Cloud Functions og meget mere. Firebase's styrke ligger i realtidsdatasynkronisering - når data ændres, opdateres alle forbundne klienter automatisk. Dette gør den ideel til chat-apps, samarbejdsværktøjer og live dashboards. Firestore er den nyere database der organiserer data i collections af dokumenter, mens Realtime Database gemmer alt som ét stort JSON-træ. Firebase håndterer al backend-infrastruktur, skalering og sikkerhed, så udviklere kan fokusere på frontend. Med offline-support synkroniserer data automatisk når forbindelsen genoprettes. Firebase's friktionsfrie integration med Android, iOS og web gør den populær til mobile-first startups og MVP'er.

Features

  • Realtidsdatasynkronisering
  • Offline-support med automatisk synkronisering
  • Indbygget autentificering
  • Serverløse cloud functions
  • Fillagring med CDN
  • Automatisk skalering
  • Sikkerhedsregler for adgangskontrol
  • Dyb integration med Google Cloud

Query Eksempel

// JavaScript SDK (Firestore)
import { 
  collection, 
  addDoc, 
  query, 
  where, 
  getDocs,
  onSnapshot 
} from 'firebase/firestore';

// Tilføj document
const usersRef = collection(db, 'users');
await addDoc(usersRef, {
  name: 'Maria Nielsen',
  email: 'maria@email.dk',
  age: 28,
  city: 'København'
});

// Query data
const q = query(
  usersRef, 
  where('city', '==', 'København'),
  where('age', '>=', 25)
);
const snapshot = await getDocs(q);
snapshot.forEach(doc => {
  console.log(doc.id, doc.data());
});

// Real-time listener
const unsubscribe = onSnapshot(q, (snapshot) => {
  snapshot.forEach(doc => {
    console.log('Real-time update:', doc.data());
  });
});

// Security Rules
// rules_version = '2';
// service cloud.firestore {
//   match /databases/{database}/documents {
//     match /users/{userId} {
//       allow read: if request.auth != null;
//       allow write: if request.auth.uid == userId;
//     }
//   }
// }

Anvendelsesområder

  • Mobilapps med realtidssynkronisering
  • Chat- og beskedapplikationer
  • Samarbejdsredigeringsværktøjer
  • Sociale medie-feeds
  • Gaming-leaderboards og matchmaking

Fordele

  • Nul backend-opsætning (administreret tjeneste)
  • Realtidsopdateringer ud af boksen
  • Fremragende mobil-SDK'er
  • Hurtig til at bygge MVP'er
  • Gratis niveau til små projekter

Ulemper

  • Leverandørbinding (Google)
  • Begrænsede forespørgselskapabiliteter
  • Kan blive dyrt ved stor skala
  • Mindre fleksibel end brugerdefineret backend
  • Sikkerhedsregler kan være komplekse

Bedst til

  • Mobil- og webprototyper
  • Realtidssamarbejdsapps
  • Startups der vil bevæge sig hurtigt
  • Apps med begrænset backend-kompleksitet
  • Små til mellemstore apps

Ikke anbefalet til

  • Kompleks backend-forretningslogik
  • Applikationer med komplekse forespørgsler
  • Store enterprise-systemer
  • Når leverandørbinding er en bekymring
  • Budgetfølsomme højtrafik-apps

Relaterede databaser

SupabaseAWS AmplifyParseBack4App