====== Ionic4とFirebaseでEmail認証つき掲示板 Part.2 ======
前回の[[00.ionic4:04.ionic4とfirebaseで掲示板part1|Ionic4とFirebaseでEmail認証つき掲示板 Part.1]]に引き続き、以下の本の『第6章 Firebaseでユーザー認証しよう』を写経していきたいと思います。
上記の本のサポートサイト
https://sinack.com/ird_ionic/
===== すること =====
-掲示板
-Emailアドレスとパスワードでログイン制限あり
-ユーザー登録ができる
-掲示板にメッセージを書き込める(Create)
-メッセージの更新(Update)と削除(Delete)ができる
-メッセージにコメントできる
-PWA化して、オフラインでもアプリとして利用できようにする
作成の流れとしては、[[https://amzn.to/2I7ktCj|初心者でも大丈夫!! IonicとFirebaseでゼロからはじめるアプリ開発]]によると、以下のようになります。
-ログイン機能のない『疑非メッセージボード』を作成する([[00.ionic4:04.ionic4とfirebaseで掲示板part1|Part.1]])
-上記メッセージボードにログイン機能をつける(←今回)
-投稿されたメッセージをFirebaseに保存できるようにする
ソースコード
DEMO
===== 開発環境 =====
私の環境は以下のようになっていますが、Windowsパソコンの場合、
[[00.ionic4:01.windowsでionicを始める方法|WindowsでIonicを始める方法]]
や、
[[00.ionic4:01.windowsでionicを始める方法#オプション:nvm-windowsでNode.jsのバージョン管理]]
の手順でインストールしていただければ、ほぼ同じ環境が整います。
Windows10パソコン購入後のWindows Subsystem for Linuxでの環境構築については、[[z_blog:2018:181219_windows10_config|Windows10購入時の設定]]に記載させていただきました。
Panasonic CF-RZ6
Windows10 Pro (1803)
VisualStudioCode
Windows Subsystem for Linux (WSL)
Ubuntu18.04
VisualStudioCodeのターミナル画面をWSLのBashに設定
git 2.17.1
anyenv
nodenv 1.1.2-69-gced0e70
node 10.14.2
{{:00.ionic4:pasted:20190210-143318.png}}
私の場合、以下のようにフォルダ共有しています。
Windowsの C:/Users/a/a/
Ubuntuの /mnt/c/Users/a/a/
また、Windows10のVisualStudioCodeでC:/Users/a/a/フォルダを開き、[[http://i-doctor.sakura.ne.jp/web/doku.php?id=z_blog:2018:181219_windows10_config#%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%85%B1%E6%9C%89%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A|こちらの設定]](Ctrl+Shift+Pで、Terminal select default shellをクリック)にて、VisualStudioCodeのターミナル画面をWSLのUbuntuのBash画面に設定しています。
===== Firebaseで新規プロジェクト(新しいサーバ)を作成 =====
パスワード制限を行うために、サーバサイドの処理が必要です。
サーバサイドの処理のために、Firebase(無料プラン)というものを利用します。
*https://console.firebase.google.com にGoogleアカウントでログインし、新規プロジェクト作成
{{:08.googleアカウントでのログイン機能:pasted:20181216-124725.png}}
*今回は、「firebase-auth」という名前で新規プロジェクトを作成しました。
{{:08.googleアカウントでのログイン機能:pasted:20181216-124838.png}}
*測定管理者間のデータ保護条項と規約の左側のチェックボックスをONにして、右下の「プロジェクトを作成」をクリック。
{{:08.googleアカウントでのログイン機能:pasted:20181216-125023.png}}
*少し待つと、「新しいプロジェクトの準備ができました」と表示されるので、次へ をクリック。
{{:08.googleアカウントでのログイン機能:pasted:20181216-125148.png}}
*以下のようなプロジェクトトップ画面になるので、下図のように、「>」をクリック。
{{:08.googleアカウントでのログイン機能:pasted:20181216-125305.png}}
*「ウェブアプリにFirebaseを追加」の画面が出てくるので、グレーで表示された部分の中身をメモ帳などにコピーしておきます。これは、後で、VisualStudioCodeで、ペーストします。
{{:08.googleアカウントでのログイン機能:pasted:20181216-125734.png}}
*プロジェクトトップ画面で、画面左側の列の「開発」をクリック
{{:08.googleアカウントでのログイン機能:pasted:20181216-130117.png}}
*Authentication をクリック
{{:08.googleアカウントでのログイン機能:pasted:20181216-130030.png}}
*ログイン方法 をクリック
{{:08.googleアカウントでのログイン機能:pasted:20181216-130219.png}}
*「メール/パスワード」をクリックして、有効 にします。その後、「保存」をクリック
{{:00.ionic4:pasted:20190213-170919.png}}
===== IonicからFirebaseを利用できるようにする =====
ローカルパソコンのVisualStudioCodeにターミナル画面に戻り、以下を入力します。
npm install firebase @angular/fire --save
{{:00.ionic4:pasted:20190214-160939.png}}
src/environments/environments.ts に、先ほどのFirebaseのconfig以下をコピペします。
(変更前)
{{:00.ionic4:pasted:20190214-163631.png}}
(変更後)
{{:00.ionic4:pasted:20190214-163801.png}}
src/environments/environment.prod.ts も、同様に変更しておきます。
{{:00.ionic4:pasted:20190214-163916.png}}
引き続き、Firebaseの機能をIonicで利用できるようにセットアップを行っていきます。
src/app/app.module.tsを編集。
(変更前)
{{:00.ionic4:pasted:20190214-164032.png}}
(変更後)
{{:00.ionic4:pasted:20190214-164421.png}}
これで、FirebaseのAuthentication(認証)を利用する準備ができました。
(Netlifyにデプロイする場合は、Firebaseアプリの設定で、Netlifyのドメインを許可する必要があります。、)
===== ログインページの作成 =====
ログインページを作成します。ターミナルで以下を入力します。
ionic g page login
{{:00.ionic4:pasted:20190214-165133.png}}
上記コードにより、以下の5個のファイルが新規作成されます。
{{:00.ionic4:pasted:20190214-165302.png}}
また、ルーティングを記載している
src/app/app-routing.module.ts
も自動的にアップデートされて、http://localhost:8100/login にアクセスすると、loginページが表示されるようになります。
{{:00.ionic4:pasted:20190214-165540.png}}
いきなり出てきたapp-routing.module.tsですが、今後、todos/:id などのルーティングや、ルーティングのガードを行いたい(後述)などの場合は、このファイルを編集していくことになります。
==== login.page.htmlの編集 ====
ログイン画面の見栄えを作成していきます。
src/app/login/login.page.html
(変更前)
{{:00.ionic4:pasted:20190214-165916.png}}
(変更後)
{{:00.ionic4:pasted:20190214-171111.png}}
{{:00.ionic4:pasted:20190214-171143.png}}
login.emailとlogin.passwordの定義と、userLogin()関数の定義(ToastControllerというものを用います)を、src/app/login/login.page.tsに記載していきます。
(変更前)
{{:00.ionic4:pasted:20190214-171421.png}}
(変更後)
(作成中)
===== リンク =====
目次:[[00.ionic4:index.html|スマホ用ホームページ&スマホアプリ作成ソフトIonic4]]
前:
次: