{"id":30199852,"url":"https://github.com/codingwithmanny/firebase-react-redux","last_synced_at":"2025-08-13T08:42:56.464Z","repository":{"id":39480832,"uuid":"195019082","full_name":"codingwithmanny/firebase-react-redux","owner":"codingwithmanny","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-04T03:34:35.000Z","size":3997,"stargazers_count":1,"open_issues_count":31,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-04T06:55:48.553Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codingwithmanny.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-03T09:10:24.000Z","updated_at":"2025-02-05T22:06:41.000Z","dependencies_parsed_at":"2023-02-01T18:45:32.111Z","dependency_job_id":null,"html_url":"https://github.com/codingwithmanny/firebase-react-redux","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codingwithmanny/firebase-react-redux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingwithmanny%2Ffirebase-react-redux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingwithmanny%2Ffirebase-react-redux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingwithmanny%2Ffirebase-react-redux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingwithmanny%2Ffirebase-react-redux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codingwithmanny","download_url":"https://codeload.github.com/codingwithmanny/firebase-react-redux/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingwithmanny%2Ffirebase-react-redux/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270212255,"owners_count":24546103,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-13T08:42:31.708Z","updated_at":"2025-08-13T08:42:56.434Z","avatar_url":"https://github.com/codingwithmanny.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Firebase React Redux\n\n# Requirements\n\n- NVM\n- NodeJS 8.16.0\n- Firebase Tools\n\n## Local Setup\n\nInstall dependencies\n\n### Node Version\n\nMake sure you have the correct version of node installed because firebase only supports specific versions of node and not the latest versions.\n\n```bash\nnvm install;\n```\n\n### Firebase Tools\n\nMake sure you have the firebase tools installed on your computer with the correct node version.\n\n```bash\nyarn add firebase-tools; # npm install firebase-tools\n```\n\n### Initial Firebase Setup From Scratch\n\nThese are the steps you would take if you were setting your project from scratch. If the project is already setup, please ignore these steps and proceed to `### Existing Firebase Setup`\n\n1. Make sure you are logged into your google account:\n\n```bash\n./node_modules/firebase-tools/lib/bin/firebase.js login;\n```\n\n2. Init or select your project\n\n```bash\n./node_modules/firebase-tools/lib/bin/firebase.js init;\n```\n\n3. When the prompt appears, select `Hosting`\n\n```\nWhich Firebase CLI features do you want to set up for this folder? Press Space to select features, then Enter\n to confirm your choices.\n ◯ Database: Deploy Firebase Realtime Database Rules\n ◯ Firestore: Deploy rules and create indexes for Firestore\n ◯ Functions: Configure and deploy Cloud Functions\n❯◉ Hosting: Configure and deploy Firebase Hosting sites\n ◯ Storage: Deploy Cloud Storage security rules\n```\n\n4. You'll need to select an existing project:\n\n```\nSelect a default Firebase project for this directory:\n  [don't setup a default project]\n❯ yourproject (your-project)\n  [create a new project]\n```\n\n5. Select `public` for public directory\n\n**_NOTE_:** This will be changed later.\n\n```\nWhat do you want to use as your public directory? (public)\n```\n\n6. Setup as a SPA\n\n```\nConfigure as a single-page app (rewrite all urls to /index.html)? (y/N) y\n```\n\n7. Install scaffold out react app\n\n```bash\nnpx create-react-app app\n```\n\n8. Adding Config File:\n\nA. In your firebase console in the browser, next to `Project Overview`, click the `⚙` icon and go to `Project Settings`.\n\nB. In the top navigation, go to `General`\n\nC. Scroll down to section `Your Apps` \u003e `Web apps` and make sure your project is selected.\n\nD. Under `Firebase SDK snippet` make sure `Config` is selected and copy the scripts:\n\n```javascript\nconst firebaseConfig = {\n  apiKey: '{api-key}',\n  authDomain: '{auth-domain}',\n  databaseURL: '{database-url}',\n  projectId: '{project-id}',\n  storageBucket: '{storage-bucket}',\n  messagingSenderId: '{messaging-sender-id}',\n  appId: '{app-id}'\n};\n```\n\nE. Create a new file called `app/config/config.json`, paste and modify the code as:\n\n```json\n{\n  \"apiKey\": \"{api-key}\",\n  \"authDomain\": \"{auth-domain}\",\n  \"databaseURL\": \"{database-url}\",\n  \"projectId\": \"{project-id}\",\n  \"storageBucket\": \"{storage-bucket}\",\n  \"messagingSenderId\": \"{messaging-sender-id}\",\n  \"appId\": \"{app-id}\"\n}\n```\n\n9. Re-Configure `public` folder for hosting.\n\nModify your existing `firebase.json` and change the following:\n\n```json\n{\n  \"hosting\": {\n    \"public\": \"app/build\",\n```\n\nDelete previously generated `/public` folder.\n\n10. Configure `API` url:\n\n```bash\ncp app/public/api.example.js app/public/api.js;\n```\n\n11. Change your `/app/public/index.html` to read the `api.js` file:\n\n```html\n    \u003cscript src=\"./api.js\"\u003e\u003c/script\u003e\n    \u003ctitle\u003eReact App\u003c/title\u003e\n  \u003c/head\u003e\n```\n\n### Existing Firebase Setup\n\n1. Configure `.firebaserc`\n\n```bash\ncp .firebaserc.example .firebaserc;\n```\n\n2. Make sure you are logged into your google account:\n\n```bash\n./node_modules/firebase-tools/lib/bin/firebase.js login;\n```\n\n3. Set project\n\n```json\n{\n  \"projects\": {\n    \"default\": \"your-project\"\n  }\n}\n```\n\n4. Configure your `config.json` file:\n\nCopy and modify accordingly with the right crentials.\n\n```bash\ncp app/config/config.example.json app/config/config.json;\n```\n\n5. Install Root Dependencies\n\n```bash\nyarn install; # npm install\n```\n\n6. Install Hosting Dependencies\n\n```bash\ncd app;\nyarn install; # npm install\n```\n\n## Run Local Server\n\nTo run the server locally, run:\n\n```bash\ncd app;\nyarn start; # npm start\n```\n\nWhen we go to `http://localhost:3000` we should see our frontend application.\n\n## Deployment\n\n**_NOTE_**: You will need to be logged in to `firebase-tools` for this to work, and make sure you are set the correct `project` as well.\n\n**_IMPORTANT_**: Make sure you environment keys / variables are set for production before pushing.\n\n**_NODE_VERSION_**: Make sure you are using node the correct node version (run `nvm use`);\n\n**_LINTING_ERRORS_**: Make sure to fix your linting errors, otherwise it will NOT deploy.\n\n**_DEPLOYMENT_VERSIONING_**: Make sure to increment the deployment version in `app/config/version.json` to make sure you have an idea if the new code has been deployed.\n\n**_!!!!API URL_** Make sure to change `/app/public/api.js` the correct production url:\n\n```javascript\nwindow.API_URL = 'https://{firebase-functions-url}.cloudfunctions.net/app';\n```\n\nBuild the application:\n\n```bash\ncd app;\nyarn run build;\n```\n\nTo deploy, run:\n\n```bash\n# !!! Make sure you're in the root of the project\n./node_modules/firebase-tools/lib/bin/firebase.js deploy --only hosting;\n```\n\nIf successfully deployed, it should be deployed to:\n\n`https://{your-firebase-project}.firebaseapp.com`\n\nIf it was successfully deployed, but it's NOT showing, check:\n\n`https://console.firebase.google.com/project/{your-firebase-project}/overview`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodingwithmanny%2Ffirebase-react-redux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodingwithmanny%2Ffirebase-react-redux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodingwithmanny%2Ffirebase-react-redux/lists"}