This repo contains a Firebase (Cloud Functions + Firestore) backend and a minimal Expo React Native mobile client scaffold.
Note:
node_modules/are intentionally not included. Install deps before running.
backend/– Firebase project (Firestore rules/indexes + Cloud Functions)mobile/– Expo app scaffold (React Native)
- Node.js 18+
- Firebase CLI:
npm i -g firebase-tools - A Firebase project (for deploy) or Firebase Emulator Suite (for local)
cd backend
npm install
cd functions
npm install
cd ..
# Start emulators (Functions + Firestore + UI)
firebase emulators:startIn another terminal, seed the emulator with sample data:
cd backend
node scripts/seedEmulator.jscd mobile
npm install
npm run startSet your mobile app config:
- Copy
mobile/.env.exampletomobile/.env - Fill in your Firebase web config values (from Firebase Console)
- For emulator mode, keep API base URL as
http://localhost:5001/<PROJECT_ID>/<REGION>/api
cd backend
firebase use <your-project-id>
firebase deploy --only firestore,functionsThe backend exports a single HTTPS function:
- Base path:
/api - Health check:
GET /api/health
Key endpoints:
GET /api/users/mePUT /api/users/mePOST /api/users/me/favouritesGET /api/providersGET /api/providers/:idPOST /api/bookingsGET /api/bookingsPATCH /api/bookings/:id/status
All non-public endpoints require Authorization: Bearer <Firebase ID token>.