Obsah
Firebase SDK
Firebase SDK (Software Development Kit) je sada vývojářských nástrojů, knihoven a dokumentace, která umožňuje programátorům propojit jejich vlastní aplikace (webové, mobilní nebo desktopové) s cloudovými službami platformy Firebase. SDK funguje jako most, který zprostředkovává veškerou bezpečnou komunikaci mezi klientským zařízením (nebo vlastním serverem) a infrastrukturou Googlu.
Rozdělení Firebase SDK
Firebase nabízí dvě hlavní kategorie SDK, které se liší svým účelem, prostředím a úrovní oprávnění:
1. Klientské SDK (Client SDKs)
Tato SDK jsou určena pro nasazení přímo do koncových aplikací, které běží na zařízeních uživatelů (např. v prohlížeči nebo na mobilním telefonu). Důležitou vlastností je, že klientská SDK podléhají bezpečnostním pravidlům (Firebase Security Rules), aby koncový uživatel nemohl manipulovat s daty, ke kterým nemá oprávnění.
- Web (JavaScript/TypeScript): Pro tvorbu front-endových webových aplikací.
- Mobilní platformy: Nativní SDK pro vývojáře v Android (Java/Kotlin) a iOS (Swift/Objective-C).
- Multiplatformní nástroje: Plná podpora pro frameworky jako Flutter, React Native nebo herní enginy Unity a C++.
2. Firebase Admin SDK
Tato varianta SDK je navržena výhradně pro použití v důvěryhodném serverovém prostředí (např. na vlastním backendu, virtuálním serveru nebo v rámci služeb jako Cloud Functions).
- Admin SDK zcela obchází klientská bezpečnostní pravidla (Security Rules) a má administrátorský přístup ke všem datům a službám v daném Firebase projektu.
- Využívá se primárně pro bezpečné operace na pozadí: hromadnou správu uživatelských účtů, spouštění pravidelných cron úloh, bezpečné ověřování tokenů třetích stran nebo pokročilou údržbu databází.
- Oficiálně je dostupné pro backendové jazyky Node.js, Java, Python, Go a C#.
Moderní webové SDK (Modulární API)
Od verze Firebase 9 (představené v roce 2021) prošlo webové JavaScriptové SDK naprosto zásadní změnou architektury. Přešlo z monolitického objektového modelu na tzv. modulární přístup.
- Dřívější přístup (v8 a starší): Vývojář do projektu importoval celý velký globální objekt
firebase, i když kód reálně využíval jen zlomek dostupných funkcí (např. jen databázi). To zbytečně zvětšovalo datovou velikost aplikace. - Modulární přístup (v9 a novější): Nové SDK vyžaduje, aby se funkce importovaly jednotlivě přesně podle toho, co kód potřebuje. To umožňuje moderním build nástrojům (Webpack, Vite, Rollup) provádět proces zvaný Tree-shaking (odstranění nepoužitého kódu při kompilaci). Výsledkem je dramatické zmenšení velikosti výsledného JavaScriptu (bundle size) a mnohem rychlejší načítání samotného webu.
Ukázka instalace a použití (Web SDK)
Pro moderní použití ve webovém projektu, který využívá správce balíčků, se Firebase SDK instaluje přes NPM příkazem:
npm install firebase
Následně se v kódu naimportují pouze ty moduly a funkce, které jsou pro daný skript skutečně potřeba (ukázka nového modulárního přístupu):
// Import pouze funkce pro inicializaci aplikace import { initializeApp } from "firebase/app"; // Import konkrétních modulárních funkcí pro práci s databází Firestore import { getFirestore, doc, setDoc } from "firebase/firestore"; const firebaseConfig = { apiKey: "TVUJ_API_KLIC", authDomain: "tvoje-aplikace.firebaseapp.com", projectId: "tvoje-aplikace" // ... další údaje ... }; // Inicializace const app = initializeApp(firebaseConfig); const db = getFirestore(app); // Asynchronní zápis do databáze pomocí specificky importovaných funkcí async function vytvorUzivatele() { await setDoc(doc(db, "uzivatele", "unikatni_id_123"), { jmeno: "Jan", prijmeni: "Novák", role: "editor" }); }
