IT + X

ITと何かのコラボレーションは時代を変えるかも

Firebase使ってみた

FirebaseはGoogleが提供するBaaSと呼ばれるクラウドサービスです。

firebase.google.com

これからは自分でサーバーを構築する時代でもないと思ったので、Firebaseを試してみました。

まずは、firebaseに登録してウェブアプリをデプロイするところまでやってみたのですが、ちょっとハマったところもあったのでまとめておきました。

 

まず、Google Cloud Platformに登録して 新しいプロジェクトを作成します。
作成方法についてはこちらを参照してください。

cloud.google.com

次に、GCP Cloud Shellを開きます。
これはブラウザからクラウドインスタンス上でシェルを使うためのものです。
GCPダッシュボードの右上のプロンプトマークをクリックします。

 

f:id:anthony-g:20190228202922p:plain

すると、下にシェルのターミナルが開きます。

f:id:anthony-g:20190228204726p:plain

サンプルウェブアプリのソースを以下のコマンドでダウンロードしておきます。


# git clone https://github.com/firebase/friendlychat-web

 

次にFirebase(https://firebase.google.com)のサイトにブラウザでアクセスして、プロジェクトを作成します。

f:id:anthony-g:20190301123150p:plain

 

プロジェクトを作成すると以下のようなページが表示されます。

f:id:anthony-g:20190301123331p:plain

 

Firebaseは以下のようなサービスで構成されています。

  • Authentication - 認証機能
  • Database - データベース機能
  • Storage - 静的コンテンツやファイルを保存する機能
  • Hosting - コンテンツの配信やデプロイ
  • Functions - クラウド関数

サンプルアプリを動かすためにAuthentication,Database,Storageを設定します。

左サイドメニューの「Database」をクリックしてRealtime Databaseの「データベースの作成」をクリックします。

f:id:anthony-g:20190301131242p:plain

 

「テストモード」を選択し、「データベースを作成」をクリックします。

f:id:anthony-g:20190301131512p:plain

 

データベース作成完了です。

f:id:anthony-g:20190301132719p:plain

 

次に、認証機能を設定します。
左メニューのAuthenticationをクリックし、「ログイン設定ボタン」をクリックします。

f:id:anthony-g:20190301162816p:plain

 

「ログイン方法」タブを選択した後、ログインプロバイダーとしてGoogleを選択し「有効にする」スライダーをオンにします。「プロジェクトの公開名」はFriendly Chatと入力します。

f:id:anthony-g:20190301165235p:plain

 

Google認証が有効になりました。

f:id:anthony-g:20190301171933p:plain

 

次に、Storageの設定を行います。

f:id:anthony-g:20190301172103p:plain

 

「スタートガイド」ボタンをクリックします。

f:id:anthony-g:20190301172227p:plain

 

「セキュリティルール」ダイアログのOKボタンをクリックします。

f:id:anthony-g:20190301173237p:plain

 

これでFirebase側の設定は完了です。

次に、サービスアカウントを作成します。
サービスアカウントとは、アプリケーションや仮想マシンに属する特別なGoogleアカウントです。GCPからFirebaseにアクセスするには事前に作成しておく必要があります。

GCPダッシュボードのメニュー「APIとサービス」- 「認証情報」をクリックします。

f:id:anthony-g:20190302181612p:plain

「認証情報」の「認証情報の作成」-「サービスアカウントキー」を選びます。

f:id:anthony-g:20190302184907p:plain

 

「サービスアカウント」メニューで「新しいサービスアカウント」を選択し、「役割」メニューは「Project」-「オーナー」を選択します。

f:id:anthony-g:20190302185440p:plain

アカウントが作成された後、暗号鍵が含まれたJSONファイルがダウンロードされますので、PCの適当なところに保存してください。

PC上のエディタでダウンロードしたJSONファイルを開いてテキストをコピーします。
次に、GCPコンソール上でvi等のエディターを開いてペーストしてファイル保存してください。(ファイルパス $HOME/friendly_chat_web/web/fbtest.json)
そして、GCPシェル上で保存したJSONファイルのパスを環境変数GOOGLE_APPLICATION_CREDENTIALSに以下のように設定します。

# export GOOGLE_APPLICATION_CREDENTIALS=$HOME/friendly_chat_web/web/fbtest.json

次に、アプリのディレクトリで以下のコマンドを実行します。

# cd friendly_chat_web/web
# firebase login --no-localhost

ブラウザでアクセスして認証するためのURLが表示されるので
表示されたURLにアクセスしてサービスアカウントのアクセスを許可してください。

そして、以下のコマンドをGCPシェルで実行してください。
# firebase init

f:id:anthony-g:20190302200746p:plain

ラジオボタンになっているところの「Database」と「Storage」に上下カーソルキーで移動しスペースキーでチェックを入れてリターンします。

f:id:anthony-g:20190302201152p:plain

Select a default Firebase project for this directory:で(don't setup a default project)を選びます。

f:id:anthony-g:20190302202129p:plain

その後、何回か聞かれますがリターンで問題ないです。

そして、アプリケーションのデプロイを行います。
# firebase deploy --project プロジェクトID

プロジェクトIDは、Firebaseのプロジェクトの設定で確認できます。

f:id:anthony-g:20190303211521p:plain

 

Hosting URLをブラウザでアクセスするとウェブアプリが動作していることを確認できます。

f:id:anthony-g:20190302204647p:plain

 

GCPとFirebaseの接続設定のところで結構はまりましたが、認証やデータベースをFirebaseに任せられるのはいいですね。
さらに色々いじってみたいと思います。

 

参考URL: 

www.topgate.co.jp