๋ ธ๋ง๋์ฝ๋์ ํธ์ํฐ ํด๋ก ๊ฐ์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์งํ๋์์ต๋๋ค.
npx create-react-app [app-name]Firebase Setup์์ ์ถ๊ฐ ํ๋ ์๋ ์ฝ๋ ๊ฐ์ ๊ฒฝ์ฐ, github์ ๊ทธ๋๋ก ์ฌ๋ฆฌ๊ฒ ๋๋ฉด ํ๋ผ์ด๋นํ ์ฝ๋๊ฐ ์จ์ธ์์ ๋ ธ์ถ์ด ๋์ด๋ฒ๋ฆฐ๋ค.
//fbase.js
const firebaseConfig={...}์ด๋ฐ ์ํฉ์ ํผํ๊ณ  ๋ณด์์ ์ํด (์๋ฒฝํ์ง ์์ง๋ง) .env ๋ฅผ ์ฌ์ฉ ํด๋ณด๋๋ก ํ์.
.env ํ์ผ๋ก ๋ง๋ค์ด ํค ์ฝ๋๋ฅผ ์ ์ฅํด๋๊ณ  process.env ๋ก ๋ถ๋ฌ์ ์ฌ์ฉํ๋๋ก ํ  ์ ์๋ค.
React CRA ์ ์ฌ์ฉํ์ ๊ฒฝ์ฐ, .env ๋ฅผ ์ฌ์ฉํ  ๋ ์ฃผ์ ํด์ผ ํ  ์ ์ด ์๋๋ฐ, ์์ REACT_APP_ ๋ฅผ ๋ถ์ฌ์ผ ํ๋ค๋ ์ฌ์ค์ด๋ค.
//.env
REACT_APP_API_KEY=asdfghjkl
REACT_APP_AUTH_DOMAIN=qwertyuiop
//...//firebase.js
const firebaseConfig = {
  apiKey: process.env.REACT_APP_API_KEY,
  authDomain: process.env.REACT_APP_AUTH_DOMAIN,
  //...
};src/
  index.js
  firebase.js
  components/
    App.js
    Router.js
  routes/
    Auth.js
    Home.js
    Profile.jsRouter.js ์์ Route๋ฅผ ๋ชจ์๋๋ ํ์์ผ๋ก ์งํ๋์๋ค.
๊ทธ๋ผ ์ด์  Router๋ฅผ ์ฌ์ฉํด๋ณด์.
npm install react-router-dom//Router.js
import React from 'react';
import {
  HashRouter as Router,
  Redirect,
  Route,
  Switch,
} from 'react-router-dom';
import Auth from 'routes/Auth';
import Home from 'routes/Home';
import Profile from 'routes/Profile';
const AppRouter = ({ isLoggedIn }) => {
  return (
    <Router>
      <Switch>
        {isLoggedIn ? (
          <>
            <Route exact path="/">
              <Home />
            </Route>
            <Route exact path="/profile">
              <Profile />
            </Route>
          </>
        ) : (
          <>
            <Route exact path="/">
              <Auth />
            </Route>
            <Redirect from="*" to="/" />
          </>
        )}
      </Switch>
    </Router>
  );
};
export default AppRouter;isLoggedIn : App.js ์์ useState ๋ก ์ํ๋ฅผ ๊ด๋ฆฌํ๊ณ , AppRouter์๊ฒ prop์ผ๋ก ๋ด๋ ค ์ฃผ๋ ํ์์ผ๋ก ์์ฑํ๋ค.
๊ทธ๋์ Router.js ์์๋ ๋ถ๋ฆฌํ ๋งํผ ๋ผ์ฐํธ ๊ด๋ จ๋ ๋ด์ฉ๋ง ๋ค๋ฃจ๋๋ก ํ๋ค.
์ด์  ๊ธฐ๋ณธ์ ์ธ ์ค์ ๋ค์ ๋ง๋ฌด๋ฆฌ ๋์๊ณ , ์ธ์ฆ ๊ด๋ จ ๋ด์ฉ๋ถํฐ ํ๋์ฉ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด๋๋ก ํด์ผ๊ฒ ๋ค.