スポンサーリンク

Ionic3+Firebaseでメールアドレス認証を写経してみる(1)BitBucketに非公開登録し、Netlifyで公開とfirebaseの設定

以下のサイトが、(英語ではあるが、)非常に丁寧に分かりやすく、AngularFire2を用いて、Ionic3+FIrebaseによるメールアドレス認証を行う方法を説明してくださっている。このサイトを写経していきたい。

ソースコードもメールアドレスを登録することにより、ダウンロードすることができます。

https://javebratt.com/angularfire2-authentication-ionic/

<目次>

1.Bitbucketに非公開登録し、Netlifyで公開とfirebaseの設定 (←このページ)
2.認証システム実装とログインページの作成
3.ResetPasswordページとSignupページの作成

(開発環境)
Windows 8.1 Pro
VisualStudioCode
git version 2.16.1.windows.4
Sourcetree Version 2.4.8.0
Android Studio 3.0.1

firebase-tools
firebase@4.8.0
angularfire2@5.0.0-rc.4
promise-polyfill@8.0.0

npm install --save firebase@4.8.0
npm install --save angularfire2@5.0.0-rc.4
npm install --save promise-polyfill

 

C:/ionic/ フォルダ下に、af2EmailAuth/ というIonic3アプリを作成する。

(0)今回行うこと

元サイトの " Step #1: Creating the app." の部分を写経する。ただし、firebaseの環境設定ファイルは、src/app/app.module.ts ではなく、別ファイルであるsrc/environments/environment.ts を作成し、そちらに記載する。

Ionic3アプリの新規作成

Bitbucketに登録して、BitBucketの非公開リポジトリを作成し、アップロード

Bitbucketを介して、NetlifyでIonic3アプリを公開

LoginPage, ResetPasswordPage, SignupPageと、AuthProviderの作成

src/environments/environment.ts の作成と、firebaseの設定

(参考)IonicウェブアプリをNetlifyで簡単デプロイ

(1)アプリの作成

VisualStudioCodeで、C:/ionic3/ フォルダを開いて、Ctrl+@

ionicをインストールしていない場合は、以下を入力。

npm install -g ionic cordova

Ionicアプリの作成

ionic start af2EmailAuth blank

何か聞かれたら、最初は y 、次はn を入力して、Enter.

作成したアプリのサーバを起動して確認。

cd af2EmailAuth

ionic serve

VisualStudioCodeのターミナル画面で、"Ctrl+C" => “y" => “Enter" で一旦サーバを停止。

(2)BitBucketに登録

SourceTreeを起動。

New tab の、「Add」をクリック。

Add a repository 画面になるので、「参照」から、 C:/ionic3/af2EmailAuth を選択して、「追加」をクリック。

以下のような画面になる。

BitBucketのサイトを開き、BitBucketに登録していなければ、新しくBitBucketのアカウントを作成する。

https://bitbucket.org/account/signin/

ログインすると、以下のような画面になるので、画面一番左側の上の方の、「+」をクリックして、(CREATE) Repository をクリック。

リポジトリ名のところに、af2EmailAuth と入力。

「これは非公開リポジトリです」のチェックボックスが"ON"になっていることを確認してから、「リポジトリの作成」をクリック。

以下の部分の git@….. の部分をメモ帳などにコピーしておく。

SourceTreeに戻り、画面右上の、「設定」をクリック。

リポジトリ設定 画面が出てくるので、「追加」をクリックして、

URL/パス のところに、先ほどBitBucketのサイトでコピーした git@……. をペーストする。その他は以下のように設定して、OK をクリック。その次も、OK をクリック。

以下のような手順でgit pushする。

Pageantが起動するので、以下の手順で、Add keyから、あらかじめ作って保存しておいたSSHキーのファイルを追加する。

SSHキーを、 Bitbucketに登録していなかったので、登録する。

画面一番左下のヒト マークをクリック > BitBucket設定 をクリック。

SSH鍵 をクリック。

鍵を追加 をクリックして、SSHキーをコピーする。

SSHキーが作成済みの場合は、SourceTreeの、ツール > SSHキーの作成/インポート をクリックして起動される、PuTTY Key Generator の、Load をクリックして、表示する。

この、ssh-rsa で始まるテキストを選択してコピーし、BitBucketのSSHキーのところにペーストして、保存。

もう一度、SourceTreeで、プッシュ。

BitBucketのサイトで、リポジトリ > af2EmailAuth に行くと、ローカルのファイルがアップロードされたことがわかる。

(3)Netlifyで公開

Netlifyという静的サイト公開ツールがあり、あらかじめ設定しておけば、GitHubやBitbucketにpushする(コードをアップロードする)だけで、Ionicサイトを公開することができます(無料プランの範囲でできます)。

とりあえず、WEBアプリとして、Netlifyというサービスを利用して、無料で公開します。

https://www.netlify.com/

上記リンクをクリックして、画面右上の、「Sign Up」をクリック

Welcome to Netlify の画面になるので、「Bitbucket」をクリック

BitbucketのOAuthページに行くので、「アクセスを許可する」をクリック

Netlifyのページに戻ってくる。画面右上の、「New Site from Git」をクリック

Create a new site の画面になるので、「Bitbucket」をクリック

Bitbucketに登録されているリポジトリのリストが表示されるので、公開したいBitbucket内のリポジトリ(今回は、af2emailauth) をクリック

Build commandを、

npm build run --prod

Pualish directoryを、 www/  として、"Deploy site" をクリック。

数秒で以下のページに切り替わる。

しかし、Deploy faliedと出てしまった。がっくし。。。

ググッたが、Node.jsのVersionがうんたらかんたら、、、と。

挫折か、、、

同じことをGitHubの公開リポジトリから行ったら、うまくいった。

Bitbucketの非公開リポジトリとNetlifyは相性が悪いのかな・・・?

(非公開リポジトリでないと、firebaseの設定ファイルをアップロードできない。。。)

もしかして、、、

(変更前)

(変更後)

はい、deployの設定を、私が間違えていただけでした。正しくは、

npm run build –prod

でした。

数分で、無事、deployできました。

無事、Bitbucketの非公開リポジトリから、Netlifyにデプロイ(公開)することができた。これは便利!

https://keen-wozniak-5f1a83.netlify.com/

(4)必要なnpmパッケージのインストール

ローカルのVisualStudioCodeのターミナル画面で、以下を入力

npm install --save firebase@4.8.0
npm install --save angularfire2@5.0.0-rc.4
npm install --save promise-polyfill

 

上記コマンドにより、firebase@4.8.0, angularfire2@5.0.0-rc.4, promise-polyfill をインストールします。2018/6/15時点で、なんとなく、firebaseとangularfire2は、上記に指定した方が、後でうまくいきそうな感じなので、最新版ではなく、こちらのVersionに指定してインストールしています。

(5)LoginPage、ResetPasswordPage、SignupPageの作成と、AuthProviderの作成。

引き続き、ローカルのVisualStudioCodeのターミナル画面で、以下を入力して、LoginPage、ResetPasswordPage、SignupPageの作成と、AuthProviderの作成を行います。

ionic generate page Login
ionic generate page ResetPassword
ionic generate page Signup
ionic generate provider Auth

(6)AngularFire2を使うための準備

Firebase Consoleにログイン(Gmailアカウントが必要です。なければ登録します。)して、「プロジェクトを追加」をクリックして、プロジェクトを新規作成します。

https://console.firebase.google.com/

新規作成したプロジェクトのトップページから、「ウェブアプリをFirebaseに追加」をクリック

以下の画面の、var config = { … }; の中身をメモ帳などにコピーしておきます。

ローカルのVisualStudioCodeで “src/environments/ フォルダ"を作成し、その中に"src/encironments/environment.ts" を作成し、以下のように、上記でコピーした内容をコピペします。

export const environment = {
  production: false,
  firebase: {
    apiKey: "<your-api-key>",
    authDomain: "<your-app-id>.firebaseapp.com",
    databaseURL: "https://<your-app-id>.firebaseio.com",
    projectId: "<your-app-id>",
    storageBucket: "<your-app-id>.appspot.com",
    messagingSenderId: "xxxxxxxxxxxxxxxxx"
  }
}

実際のapiKeyやauthDomainのところは、各自のものをコピペします。

src/app/app.module.ts の編集(angularfire2の準備)

(変更前)

AngularFireModule, AngularFireAuthModuleと、上記で作成したenvironmentをimport して、@NgModuleのimportsのところにも以下のように追記します。
("ionic g provider Auth"で作成したAuthProviderは自動的にapp.module.tsにimportされて、@NgModuleのprovidersのところにも記載されています。)

AngularFireModule.initializeApp(environment.firebase),
AngularFireAuthModule

(変更後)

(6)Bitbucketにアップロード(自動的にNetlifyにdeployされる)

SourceTreeで、「全てインデックスに追加」をクリック。下の方の空欄にgit commit のコメントを入力し、「コミット」をクリック。変更をすぐにorigin/masterにプッシュする のチェックボックスをONにしておくと楽。

Netlifyの該当プロジェクトのページを見ると、確かに、自動的にbuilding になっている。数十秒後に、PUBLISHED になっていた。

次は、Step #2: Create the authentication listener. 以降を写経していきたい。

https://javebratt.com/angularfire2-authentication-ionic/