A nagy kérdés, hogy hogyan lehet használni a Google Firebase-t egy Expo ReactNative mobilalkalmazásban? A válasz, hogy egyszerűen :).

Firebase használata Expo-val
Mint ahogyan mindig hangsúlyozom, ha valami új dolgot csinálunk, akkor érdemes elolvasni a legfrissebb dokumentációt!
A dokumentáció szerint az első lépés, hogy telepítsük a Firebase-t, vagyis konzolban adjuk ki a következő parancsot:
npx expo install firebase
Használat ReactNative alkalmazásban
Először is el kell dönteni, hol van a legjobb helye a Firebase használatának az alkalmazáson belül. Minden bizonnyal ez a program belépési pontja, ami az app.js fájl.
Az Expo dokumentáció alapján haladva, a következő lépés, hogy importáljuk, amit kell:
import { initializeApp } from 'firebase/app';
Jöhet a konfigurációs szakasz, egy az egyben kimásolva a doksiból:
const firebaseConfig = {
apiKey: 'api-key',
authDomain: 'project-id.firebaseapp.com',
databaseURL: 'https://project-id.firebaseio.com',
projectId: 'project-id',
storageBucket: 'project-id.appspot.com',
messagingSenderId: 'sender-id',
appId: 'app-id',
measurementId: 'G-measurement-id',
};
És a slusszkulcs elfordítása, vagyis a Firebase inicializálása:
initializeApp(firebaseConfig);
A fentieket egyébként első nekifutásra bele lehet írni az app.js-be is, az importálások után, a komponens függvény definíciója elé.
Konfigurációs beállítások
A konfigurációban van egy sor adat, amit a saját projektünkre szabva kell megadni. Az első és legfontosabb az api-key, ami az Firebase projektünket azonosító kulcs. A kérdés az, hogy hol vannak ezek az adatok?
Vissza kell menni a Firebase oldalán a projektünk kezdő oldalára és a Project Overview melletti fogaskerék ikonra kattintva jön elő a Project settings almenüpont is. Ez kell nekünk! Ezzel kell kicserélni a fenti kódot.
Hibakezelés
A tesztelés során belefutottam egy hibába, ami a bundling fázisban jelentkezik, emiatt nem is tudtam kipróbálni elsőre az alkalmazást. Aztán fény derült a hiba okára és megoldás is lett. Ebben a posztban írtam le mindent, ami ezzel kapcsolatos.