Firebase
NoSQLGoogle's mobile og web applikationsplatform med real-time NoSQL cloud database.
Beskrivelse
Firebase er en omfattende Backend-as-a-Service (BaaS) platform fra Google der inkluderer Firestore (document database), Realtime Database (JSON tree), Authentication, Storage, Hosting, Cloud Functions og meget mere. Firebase's styrke ligger i real-time data synkronisering - når data ændres opdateres alle connected clients automatisk. Dette gør den ideel til chat apps, collaborative tools og live dashboards. Firestore er den nyere database der organiserer data i collections af documents, mens Realtime Database gemmer alt som ét stort JSON tree. Firebase håndterer al backend infrastruktur, skalering, og security, så udviklere kan fokusere på frontend. Med offline support synkroniserer data automatisk når forbindelsen genoprettes. Firebase's friktionsløse integration med Android, iOS og web gør den populær til mobile-first startups og MVPs.
Features
- •Real-time data synchronization
- •Offline support med automatic sync
- •Built-in authentication
- •Serverless cloud functions
- •File storage med CDN
- •Automatic scaling
- •Security rules for access control
- •Deep 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
- •Mobile apps med real-time sync
- •Chat og messaging applikationer
- •Collaborative editing tools
- •Social media feeds
- •Gaming leaderboards og matchmaking
Fordele
- ✓Nul backend setup (managed service)
- ✓Real-time updates out of the box
- ✓Excellent mobile SDKs
- ✓Hurtig til at bygge MVPs
- ✓Free tier til små projekter
Ulemper
- ✗Vendor lock-in (Google)
- ✗Begrænset query capabilities
- ✗Kan blive dyrt ved stor skala
- ✗Mindre fleksibel end custom backend
- ✗Security rules kan være komplekse
Bedst til
- →Mobile og web prototypes
- →Real-time collaborative apps
- →Startups der vil move fast
- →Apps med begrænset backend kompleksitet
- →Small til medium sized apps
Ikke anbefalet til
- ⚠Komplekse backend business logic
- ⚠Applikationer med komplekse queries
- ⚠Large-scale enterprise systems
- ⚠Når vendor lock-in er concern
- ⚠Budget-sensitive high-traffic apps