FireBase Authの利用

ログイン機能の実装方法はいくつかあります。 Djangoを使えば、10分程度である程度見栄えの良い、ログインパネルが実装できます。 Laravel開発の場合、LaravelUIの実装に慣れていれば、そちらでも構わないかと思います。
Firebaseを利用するメリットは、手持ちのインフラが定まっていない場合でも無料でFirebaseのデータベースを利用し、ログイン機能を作成中のプロジェクトに導入できる点でしょうか?
色々な使い道があるかと思いますが、今回はReactにログイン認証を付ける事を想定しています。
ひとまず、FIrebaseで試したい方は参考にしてください。

仕様について

  • Firebase Auth を React に組み込み、ログイン機能を追加する
  • Context を利⽤したアプリケーション全体での状態管理を行う

React のプロジェクトを作成

事前準備1として、Reactのプロジェクトを作成します。


$ npx create-react-app sample-firebase --template typescript

Firebase にログイン / プロジェクトの作成

事前準備2として、Firebaseにログインし、プロジェクトの作成を行います。

  1. プロジェクトを作成

    Firebase https://firebase.google.com/?hl=ja

    FIrebaseのトップページの「使ってみる」からプロジェクトを作成で進み、プロジェクトの名前を付けます。

    firebaseでプロジェクトを作成

    プロジェクトに名前をつける

  2. Googleアナリティクスの設定が有効であるかをチェックする。有効であるのを確認し続行。 アナリティクスは有効にしておく
  3. Googleアナリティクスのアカウントに表示されたユーザーを選択し、「プロジェクトを作成」。 アナリティクスのアカウントを選択

    しばらく経つと、プロジェクトが作成されます。

  4. 「開始するにはアプリを追加してください」はWebである``````を選択します。 コードマークを選択
  5. アプリのニックネームを任意で割り当て「登録」。 アプリの名前

    次の画面でAPIキーが発行されますので、コピーしておきます。

    apiキー
    
    const firebaseConfig = {
      apiKey: "APIキー",
      authDomain: "**********614fa.firebaseapp.com",
      projectId: "**********614fa",
      storageBucket: "**********614fa.appspot.com",
      messagingSenderId: "**********",
      appId: "**********",
      measurementId: "G-**********"
    };
    
  6. Reactのプロジェクトディレクトリに`.env`のファイルを作成し、コピー(メモ)した キーをそれぞれ`REACT_APP_`の後に入れてください。
    
    REACT_APP_APIKEY=
    REACT_APP_AUTHDOMAIN=
    REACT_APP_DATABASEURL=
    REACT_APP_PROJECT_ID=
    REACT_APP_STORAGE_BUCKET=
    REACT_APP_MESSAGING_SENDER_ID=
    REACT_APP_APP_ID=
    REACT_APP_MEASUREMENT_ID=
    
    
    公式マニュアルのアプリを登録を読んでおきましょう。

ここまでのアプリを登録する流れを整理します

  1. Firebase プロジェクトを作成したら、そのプロジェクトにウェブアプリを登録できます。
  2. Firebase コンソールの [プロジェクトの概要] ページの中央にあるウェブアイコンをクリッ クして設定ワークフローを起動します。
  3. すでに Firebase プロジェクトにアプリを追加している場合は、[アプリを追加] をクリックするとプラットフォームのオプションが表⽰されます。
  4. アプリのニックネームを⼊⼒します。 このニックネームは内部⽤の簡易 ID であり、Firebase コンソールでのみ表⽰されます。 [アプリを登録] をクリックします。

FireBaseを有効化

こちらのマニュアルを参考にメール/パスワードのログインを有効化してください。

https://firebase.google.com/docs/auth/web/password-auth?hl=ja
  1. Firebase を JavaScript プロジェクトに追加します。
  2. アプリを Firebase プロジェクトに接続していない場合は、Firebase コンソールで接続します。
  3. メールアドレスとパスワードによるログインを有効にします。
  4. Firebase コンソールで [Authentication] セクションを開きます。
  5. [Sign-in method] タブで [メール / パスワード] を有効にして、[保存] をクリックします。

index.jsを成形します


import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(
  
    
  ,
  document.getElementById('root')
);

App.jsを成形します


function App() {
  return (
    
Hello,World
); } export default App;

追加でインストールします。


MUI
npm install @mui/material @emotion/react @emotion/styled

React Router
npm install react-router-dom

Firebase
npm install firebase

Firebase UI
npm install firebaseui

サーバーを起動します


$ npm run start

Reactが立ち上がるのを確認した後に、
http://localhost:3000/login
でアクセスし、会員登録とログインをしてください。
ログインが出来れば「/」にアクセスします。

メインメニュー