ゆずめも

メモ的なブログです。主に勉強した事について書いてます。

firebase hosting入門

前回からfirebaseを使い始めました。

yuzu441.hateblo.jp

今回は第2弾ということでfirebase hostingを使ってみたいと思う。

tl;dr

  • firebase-toolsインストール
  • firebaseコマンドでログイン
  • firebase consoleでプロジェクト作成
  • firebaseコマンドで雛形作成
  • firebaseコマンドでデプロイ
  • firebaseにデプロイしたものを確認

インストールとか

まずはfirebaseのCLIツールをインストールしてログイン。 今回はfirebaseの説明だけをしたいと思うのでNode.jsのインストールは省略します。

npm i -g firebase-tools
firebase login

firebase loginを実行すると 「Allow Firebase to collect anonymous CLI usage information?」と出て来ると思いますが これはよくある「匿名の情報を収集して良いか」なのでY or N好きな方を選べばいいと思います。

firebase hostingでプロジェクトを作る

firebase consoleにアクセスしてテストプロジェクトを作成する。

適当にプロジェクト名を入力して、「国/地域」は日本を選択。

プロジェクト作成からアップロードまで

インストールと準備が終わったので、プロジェクト以下コマンドでプロジェクトを作成する。

firebase init

f:id:yuzu441:20170227225420p:plain

そこから選択肢をポチポチしていきます

  • 「Hosting: Configure and deploy Firebase Hosting sites」を選択
  • 「What Firebase project do you want to associate as default?」上で作成したプロジェクト名を選択
  • 「What file should be used for Database Rules?」そのままEnter
  • 「What do you want to use as your public directory?」そのままEnter
  • 「Configure as a single-page app (rewrite all urls to /index.html)?」nを選択

初期化が終わったら以下コマンドでデプロイする

firebase deploy

これでdeploy完了!

hostingされているページを確認する

firebase consoleで作成したプロジェクトを選び、hostingのページを選ぶと <project名>-<なんかID>.firebaseapp.comと書かれたものがあるので、それをクリックすると以下のようなページが表示される

f:id:yuzu441:20170227225453p:plain

ちなみに

<project名>-<なんかID>.firebaseapp.com/foo.htmlのような存在しないページにアクセスすると404.htmlが呼ばれます。 これは存在しないページにアクセスしようとした時に404.htmlが決め打ちで返されるようになっているみたい。

firebase hosting document

firebase始めました

firebaseを使ってみようと思い、Webで使える(Android, iOS以外)ものを調べたのでそのメモ。

本社にいてもWebチームだからあんまり関わりないんだけど、Androidアプリとか作ってる会社に努めているし(今派遣先に出向してるけど)、どこかで使えそうだし手出してみるか!というのが動機。
本当は会社に金出してもらってAWS Lambdaとかやりたいんだけど、個人でやるには怖いってのは秘密

firebase.google.com

firebase authentication

認証用のサービス。 多様な認証方法をサポートしている。

珍しいなと感じた点としては"匿名認証"という仕組みがある。

  • 認証方法一覧
    • メールアドレス&パスワード認証
    • フェデレーションIDプロパイダ
      所謂OAuth。Google, Twitter, Facebookなどに対応している。
    • カスタム認証
      既存の認証をfirebaseに組み込み。(これよくわかってない)
    • 匿名認証
      ユーザ登録などをしていないユーザの状態などを保存しておくための仕組み。
      後からユーザ登録を行うことで登録前の情報を引き継ぐことができる。

Firebase Cloud Messaging(FCM)

メッセージ配信サービス。GCM(Google Cloud Messaging)の後継らしい。
最大4KBのペイロードをクライアント(AndroidとかiOSとかPCとか)に送ることができ、httpxmppをサポートしている。

これを利用するとWeb Pushを使ってブラウザに通知を送れるんだと思う(未検証なので今後やってみる予定)。

Firebase Realtime Database

NoSQLのクラウドデータベース。
オフラインでもデータを更新できて、オンラインになったときに更新分をDBとやりとりして、いい感じにデータを更新してくれるのがすごい。

一応無料枠はあるけど、別のサービスと比較すると料金高く感じる。
まだ使ってないけど、ドキュメントとか読んでる感じだとオフラインでの動作や、動機速度などはとても優秀な印象。

Firebase Storage

画像や動画などのデータを保存してくれるサービス。
所謂Google版のAmazon S3だと思う。

Firebase Hosting

HTML, CSS, JSのような静的ファイルをホスティングしてくれる。
デフォルトでhttpsをサポートしていて、firebaseが各CDNエッジからコンテンツを配信してくれる。

カスタムドメインも使えて、サブドメインにもhttps通信を適用できる。

あと間違えてデプロイしてしまったような時もfirebase consoleから簡単に前の状態に戻すことができるみたい。

まとめ

firebaseにはいろんなサービスがあるけど、Web屋さんが使えるサービスとなるとこの辺に絞られてくるみたい。

とりあえず無料枠でいろいろ遊んでみようと思ってる。
ちょうどtwitterがモバイルWeb版をPWA化して、ネイティブと戦える!的なことを発信していたので、HostingとかFCMを使ってPWAの構築を考えてるので、できたらまた記事にしようと思う。

homebrewでnginxをインストールした時のデフォルトrootの場所

homebrewでnginxをインストールしてnginx.conf見るとroot htmlが指定されているんだけど、どこかわからなかったので調べたメモ。

最初htmlってディレクトリがあると思ってfind / -name 'html' -type dで検索してたせいでハマった…
htmlディレクトリじゃなくてシンボリックリンクだったのね…