singsalot/DEPLOYMENT.md

93 lines
2.3 KiB
Markdown

# Deployment Guide - Multi-Project Firebase Setup
This project uses a multi-project Firebase setup where:
- **Web App**: Hosted on `sings-a-lot` project
- **Database & Functions**: Hosted on `firebase-herse` project
## Project Structure
```
sings-a-lot (webapp) ← Frontend hosting
firebase-herse (database) ← Database, Functions, Rules
```
## Deployment Commands
### Deploy Web App Only (to sings-a-lot)
```bash
npm run deploy:webapp
```
### Deploy Database & Functions Only (to firebase-herse)
```bash
npm run deploy:database
```
### Deploy Everything
```bash
npm run deploy:all
```
## Manual Deployment Steps
### 1. Deploy Web App
```bash
# Build the app
npm run build
# Switch to webapp project
firebase use webapp
# Deploy hosting
firebase deploy --only hosting
```
### 2. Deploy Database & Functions
```bash
# Switch to database project
firebase use sings-a-lot-database
# Deploy database rules and functions
firebase deploy --only database,functions
```
## Environment Configuration
Make sure your `.env` file points to the correct database project:
```env
# These should point to firebase-herse (database project)
VITE_FIREBASE_API_KEY=your-api-key
VITE_FIREBASE_AUTH_DOMAIN=firebase-herse.firebaseapp.com
VITE_FIREBASE_DATABASE_URL=https://firebase-herse-default-rtdb.firebaseio.com
VITE_FIREBASE_PROJECT_ID=firebase-herse
VITE_FIREBASE_STORAGE_BUCKET=firebase-herse.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=123456789
VITE_FIREBASE_APP_ID=your-app-id
# App Configuration
VITE_CONTROLLER_NAME=default
VITE_APP_TITLE=SingSalot AI
```
## Firebase Project Aliases
- `webapp``sings-a-lot` (frontend hosting)
- `sings-a-lot-database``firebase-herse` (database, functions, rules)
## Troubleshooting
### If you get permission errors:
1. Make sure you're logged into Firebase CLI: `firebase login`
2. Check your project access: `firebase projects:list`
3. Verify project aliases: `firebase use`
### If database connection fails:
1. Check that your `.env` file points to the correct database project
2. Verify database rules are deployed to the correct project
3. Check Firebase console for the correct project
### If functions don't work:
1. Make sure functions are deployed to the database project
2. Check function logs: `firebase functions:log`
3. Verify function configuration in `functions/src/index.ts`