Firebase je platforma pro vývoj aplikací spuštěná v roce 2012 a o dva roky později koupena společností Google. Ve svých počátcích byla Firebase myšlena jen jako databáze pro aplikace v reálném čase, ale Google viděl její potenciál a rozhodl se k ní přidat další služby.
V současné době je Firebase BaaS (backend as a service) systém s 18 službami pro usnadnění tvorby webových a mobilních aplikací. Mezi společnosti využívající služby BaaS Firebase patří Accenture, Alibaba Travels, Stack, Twitch a Instacart spolu s více než 2 300 dalšími.
Table of Contents
Výhody používání Firebase
První z nabízených služeb Firebase byla databáze v reálném čase a zůstává jedním z jejích největších taháků. Databáze Firebase Real-time jsou hostovány v cloudu, ukládají data ve formátu JSON a synchronizují se v reálném čase s každým klientem, který je k nim připojen. Ať už používáte iOS SDK, Android SDK nebo JavaScript SDK, všechny aplikace připojené k databázi Firebase Realtime sdílejí jednu instanci databáze, vždy aktuální s nejnovějšími daty.
Cloud Firestore je další zajímavou službou Firebase. Jedná se o databázi dokumentů NoSQL navrženou pro usnadnění ukládání, synchronizace a dotazování pro mobilní a webové aplikace v celosvětovém měřítku. Vytváření hierarchií pro ukládání souvisejících dat a expresivní dotazy pro získávání dat umožňují využít plný potenciál Cloud Firestore. Dotazy se zase škálují podle velikosti výsledků, nikoli podle velikosti datové sady. To umožňuje aplikacím škálovat od začátku bez čekání na okamžik, kdy potřeby překročí kapacitu.
Kromě výše zmíněných databázových služeb nabízí Firebase mimo jiné také hostingové služby, ukládání souborů, funkce (AWS Lambda-style).
Vytvoření API
Rozhraní API představují způsob, jak poskytovat služby pro vaše vlastní aplikace nebo aplikace třetích stran. Firebase vám umožňuje poskytovat vlastní služby, které zase využívají vlastní služby Firebase, aniž byste se museli obtěžovat nastavováním backendu pro tyto služby. Můžete například nabídnout aplikacím třetích stran přístup k databázi Firebase v reálném čase k dotazování na informace shromážděné průmyslovými senzory.
Prvním krokem při vytváření rozhraní API ve Firebase je přístup k konzole Firebase a přidejte projekt kliknutím na „Přidat projekt“ a zadáním názvu nového projektu. Google vám dá možnost aktivovat Google Analytics pro váš nový projekt. Doporučuje se přijmout toto doporučení, protože získáte výhody, jako je A/B testování a širokou škálu statistických reportů z vašeho API.
Po vytvoření projektu budete moci vybrat služby Firebase, které bude vaše API používat. Pro ilustraci tohoto úkolu uvidíme, jak používat databázovou službu Firebase Realtime.
Nastavení databáze v reálném čase ve Firebase
V navigační liště vlevo v sekci Vývoj klikněte na Realtime Database. Vpravo se zobrazí tlačítko „Vytvořit databázi“. Kliknutím na něj vytvoříte svou první databázi ve Firebase.
Dále si budete muset vybrat mezi několika možnostmi geografického umístění pro vaši novou databázi. Vyberte ten, který je vašim uživatelům nejblíže. Toto je důležitý aspekt pro minimalizaci latence vašeho API, zejména v aplikacích v reálném čase.
Dalším krokem je konfigurace základních bezpečnostních pravidel pro vaši databázi. Můžete se rozhodnout pro zamčený režim a poté přidělit přístupová oprávnění podle potřeby, nebo se rozhodnout pro testovací režim, který umožňuje veškeré čtení a zápis.
Můžete začít s možností testovacího režimu, abyste hned na začátku nekomplikovali nastavení zabezpečení. Pravidla můžete kdykoli vytvořit později a nastavit konfiguraci zabezpečení s větší granularitou.
Jakmile dokončíte konfiguraci databáze, povolí se odpovídající rozhraní API také v sekci API a služby vaší osobní konzoly v Google Cloud Platform.
Programování rozhraní Firebase API
V tomto okamžiku již máte základní prvky svého projektu nakonfigurované v konzole Firebase. Dalším krokem je napsání kódu API. Chcete-li to provést, budete muset inicializovat hosting a funkce Firebase na místním počítači. Firebase-tools můžete nainstalovat pomocí npm:
npm install -g firebase-tools
Poté se můžete přihlásit do Firebase a inicializovat svůj projekt pomocí následujících příkazů:
firebase login firebase init
Zobrazí se uvítací obrazovka, ve které vás Firebase informuje o složce, ve které bude váš projekt inicializován, a zobrazí se nabídka možností.
V této nabídce vyberte Funkce a hostování (možnost Hostování vám umožní mít vlastní adresu URL pro API, které budete vyvíjet). Poté vyberte ze seznamu aplikaci Firebase, kterou jste vytvořili dříve, a poté musíte vybrat jazyk, který chcete použít. Chcete-li vyvinout webové rozhraní API, můžete se rozhodnout pro JavaScript.
Pokud budete používat závislosti balíčků, nainstalujte je pomocí npm ve složce functions. Poté můžete začít psát kód pro své funkce. Nezapomeňte zahrnout balíčky firebase-functions a firebase-admin spolu s dalšími balíčky, které potřebujete:
import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin';
Chcete-li použít databázi v reálném čase, musíte při inicializaci sady JavaScript SDK zadat její adresu URL. Adresa URL se nachází v sekci Databáze v reálném čase konzole Firebase. Poznáte to podle formátu:
https://<database-name>.<region>.firebasedatabase.app
K inicializaci sady SDK můžete použít následující fragment kódu, který nahradí data, která odpovídají objektu konfigurace vašeho projektu:
var config = { apiKey: "apiKey", authDomain: "projectId.firebaseapp.com", databaseURL: "https://databaseName.firebaseio.com", storageBucket: "bucket.appspot.com" }; firebase.initializeApp(config); var database = firebase.database();
Jakmile napíšete kód své funkce API, je čas na nasazení. Než to však uděláte, budete muset provést nějaké změny v souboru firebase.json a přidat následující řádky upravené podle konfigurace vašeho projektu:
"rewrites": [ { "source": "/api/v1/**", "function": "webApi" } ]
Dalším krokem je nasazení. Poprvé musíte provést kompletní nasazení provedením příkazu:
firebase deploy
V následujících nasazeních budete moci nasadit pouze funkce pomocí parametru –only functions.
Po provedení příkazu deploy zobrazí Firebase CLI adresu URL koncových bodů HTTP vašich funkcí v terminálu, které můžete použít k vyvolání vašich rozhraní API z webové aplikace. Adresa URL obsahuje ID vašeho projektu a oblast pro funkci HTTP. Například následující adresu URL lze použít k volání funkce dotazu na položku předáním položky itemid=1 jako parametru:
https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1
Chcete-li funkci spustit, otevřete adresu URL s odpovídajícími parametry v prohlížeči.
Všimněte si, že nasazení do produkčního prostředí vyžaduje předplatné plánu Firebase Blaze, které je průběžné, jak si můžete přečíst na stránce s cenami Firebase. Jedná se o službu následného vyúčtování, což znamená, že vám bude na konci každého měsíce účtováno používání.
Pokud nemáte předplatné Blaze, příkaz deploy nezobrazí vaši URL API. Místo toho se zobrazí zpráva informující o tom, že se musíte přihlásit k odběru plánu Blaze, pokud chcete implementovat do běhového prostředí. V tomto případě můžete stále používat Firebase Local Emulation Suite k vytváření a testování aplikací na místním počítači namísto jejich nasazení do produkčního prostředí Firebase. Místní testování je užitečné, abyste se vyhnuli zbytečným nákladům během vývoje aplikace, protože každý testovací běh může generovat poplatky na vašem účtu.
Lokální testování a prototypování
Nástroj Local Emulator Suite nabízí integrované uživatelské rozhraní, které usnadňuje vytváření prototypů a je užitečné pro testování aplikací na místním počítači.
Pomocí uživatelského rozhraní Emulator Suite můžete mimo jiné testovat návrhy databází, pracovní postupy cloudových funkcí, analyzovat výkon backendových služeb a vyhodnocovat změny v pravidlech zabezpečení. Je to v podstatě zabezpečená karanténa pro testování funkčnosti API před odesláním do produkčního prostředí.
Chcete-li emulovat své funkce nebo otestovat aplikaci lokálně, spusťte firebase emulators:start. Abyste mohli používat emulátor Firestore, musíte mít nainstalovanou Javu. Pokud jej nemáte, můžete si jej nainstalovat z tady.
Když vyvoláte emulátor Firestore, příkaz vrátí adresu URL, která vám umožní otevřít uživatelské rozhraní Emulator Suite ve vašem prohlížeči. Ve výchozím nastavení bude tato adresa URL localhost:4000, ale na každém počítači se může lišit.
Získáte také úplnou adresu URL pro funkci HTTP. Tato adresa URL bude vypadat podobně jako:
http://localhost:5001/apiproject-8753c/us-central1/itemQuery
pouze bude mít název vašeho projektu, název vaší funkce a může mít také jiné číslo portu na vašem místním počítači.
Chcete-li funkci otestovat, zkopírujte adresu URL vrácenou emulátorem, přidejte potřebné parametry (např. ?itemid=1) a zadejte ji na nové kartě prohlížeče. Výsledky spuštění API se objeví v uživatelském rozhraní Emulator Suite.
Na kartě Protokoly uvidíte nové protokoly označující, že byla provedena funkce itemQuery(). Pokud vaše funkce generuje nová data ve vaší databázi Firestore, uvidíte je na kartě Firestore.
Získání většího zviditelnění pro vaše API
Pokud chcete, aby se vámi vyvinutá rozhraní API stala populární, Firebase vám s tím může pomoci. Nejen proto, že vám umožňuje vytvářet vaši aplikaci rychleji, což vám ušetří spoustu práce se zprovozněním backendových služeb, ale také tím, že vám pomůže s umístěním vašeho produktu. Jak je to možné? Jednoduše proto, že aplikace spojené s Firebase se ve vyhledávání umisťují lépe než jiné aplikace.
Vezměte také v úvahu rozhraní API pro indexování aplikací Firebase. Tento nástroj zlepšuje hodnocení odkazů na aplikace ve vyhledávání a pomáhá uživatelům najít požadovaný obsah. Také umístí tlačítko Instalovat za tlačítko domovské stránky vaší aplikace, takže uživatelé, kteří mají zájem, jsou od toho, aby se stali uživateli vaší aplikace, vzdáleni pouhým kliknutím.
Na závěr, Firebase vám nejen nabízí backendové služby, které dramaticky urychlí vývoj vašeho API, ale jakmile bude spuštěno a vystaveno světu, pomůže vám ho také propagovat – a vydělávat na něm peníze.