- delete firebase.json, .firebaserc, and .firebase directories
- clear .env vars
- git remote rm origin
- delete node_modules, then npm install
- create firebase project, register web app including firebase hosting, add realtime database
- set database rules (read false, write true)
- setup firebase functions (requires upgrade to blaze plan)
- Add env vars locally and on github as repo secrets
- Update config file
Stripe configuration
- On Stripe console, disable all payment methods except Cards, Apple Pay, Google Pay
- Use test api keys until ready to launch
Also see the README files inside the functions folder!
Setup Firebase:
- Create firebase project, register web app, and add to app, including firebase hosting
- Fill in firebaseConfig values in
.env
file (see.env.example
) - Create Firebase Realtime Database in test mode
- Fill in DB URL (likely includes
rtdb.firebaseio.com
) as REACT_APP_FIREBASE_DATABASE_URL in.env
file
Setup Places API:
- Activate both Places API (old) and Maps Javascript API
- Create API key in Google cloud console with access to both those APIs, limit to
http://localhost:3000/*
andhttps://www.[website].com/*
Setup Recaptcha:
- Activate Recaptcha v2 not a robot checkbox and copy site key
Development:
Set environment variables in .env
Production (with GitHub workflow and Firebase hosting):
- Set environment variables as secrets on the repo and update
.github/workflows/firebase-hosting-merge.yml
. - Deploy again after updating github secrets!
Via GitHub workflow: (See instructions above for configuring env variables as repo secrets.)
Or:
npm run build
firebase deploy --only hosting
Simple registration / admissions sales site for contra dance events.
Built in React.
Runs the app in the development mode.
Open http://localhost:3000 to view it in your browser.
The page will reload when you make changes.
You may also see any lint errors in the console.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Builds the app for production to the build
folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.