This is an Expo project created with create-expo-app.
-
Install dependencies
npm install
-
Start the app
npx expo start
Copy .env.example to a local env file and fill in the keys you need:
EXPO_PUBLIC_GOOGLE_PLACES_API_KEY=your_google_places_key
EXPO_PUBLIC_GOOGLE_MAPS_API_KEY=your_google_maps_key
EXPO_PUBLIC_GOOGLE_SIGN_IN_WEB_CLIENT_ID=your_google_web_client_idIf the Google Places/Maps keys are missing, the app falls back to local mock restaurant data so development still works.
Manager, restaurant, and driver portals use Firebase Auth custom claims. A user can sign in only if their Firebase Auth account has the correct claim:
{ "admin": true }
{ "restaurantId": "featured-1" }
{ "driverId": "driver-1" }To apply claims with the downloaded Firebase Admin SDK key:
- In Firebase Console, open Project settings > Service accounts.
- Generate a new private key and place it in the project root as
firebase-admin-key.json. This file is ignored by git. - Copy
tools/staff-claims.example.jsontotools/staff-claims.local.jsonand edit the emails/IDs to match the accounts you created. - Run:
npm run staff:claims -- --key=./firebase-admin-key.json --config=./tools/staff-claims.local.jsonYou can also update one account at a time:
npm run staff:claims -- --key=./firebase-admin-key.json --restaurant-email=nypizzaplace@fusionyum.com --restaurant-id=featured-1After claims are updated, sign out and sign back in so Firebase refreshes the ID token. Firestore rules also require these claims for staff data access.
In the output, you'll find options to open the app in a
- development build
- Android emulator
- iOS simulator
- Expo Go, a limited sandbox for trying out app development with Expo