ざっくりFirebase入門&チャットアプリを作る

2 min read読了の目安(約1900字

そういやFirebaseって聞いたことあるけど知らないなー、どういうのができるのかなーと思ったので調べた。

Firebaseとは

2011年にFirebase社がサービスを開始し、2014年にGoogleが買収したモバイルのバックエンド向けのサービス(mBaaS(mobile Backend as a Service)。
特徴としては「サーバサイドの開発費を抑え、かつ工数もかからない。サービスの利用者が増えてもサーバの増築を意識しなくて良い。モバイル開発用のサーバ構築が簡単になる。」ということである。
ちなみにモバイル向けではあるがWebアプリケーションでも使える。

Firebaseのサービス

複数のサービスがある。

Hosting

ホスティング。いわいるサーバー。こちらにHTMLファイルをデプロイしてJavaScriptで動かすことでアプリケーションが作成できる。

Realtime Database

いわいるデータベース。NoSQL型。Jsonフォーマットで保存される。MongoDBみたいな感じ。

Cloud Firestore

こちらもデータベースだがRealtime Databaseよりも高性能らしい。
どちらが適切かは次のページで解説されている。

https://firebase.google.com/docs/database/rtdb-vs-firestore?authuser=0
大規模で複雑な構成でなければ原則Realtime Databaseで良さそう。

Cloud Storage for Firebase

いわいるストレージ。

Firebase Authentication

いわいる認証周りのサービス。サードパーティ認証や電話番号にも対応。

Firebase Cloud Messaging(FCM)

プッシュ通知などのサービス。

Google Cloud Functions for Firebase

外部連携などの処理を書くときにいいらしい。

Firebaseでチャットアプリを作る

Firebase HostingにHTMLをデプロイする大まかな流れ

1.Firebase Hostingで新しいプロジェクトを作成(1サイトで1プロジェクト)
2.デプロイしたいファイルを作成。
3.Node.jsをインストールし、Firebase Cliをインストール。
4.Firebase Cliからログインして対象のファイルをアップロード。

チャットアプリを作る手順

こちらのサイトに従った。

https://tech.airis0.com/blog/firebase-realtime-database/

なお、上のサイトにもある通りだが以下の二行を追加することを忘れずに。

貼り付けたscriptタグの
<script src="https://www.gstatic.com/firebasejs/7.9.3/firebase-app.js"></script>
の下に、
<script src="https://www.gstatic.com/firebasejs/7.9.3/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.9.3/firebase-database.js"></script>
の2つのscriptタグを追加してください。

また、そのままだとPermission deniedが出るのでRealtime databaseのルールの権限は適切に設定しておきましょう。(動作確認だけなら以下の通りに一時的に設定するのも良いでしょう。)

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

感想

デプロイまでが非常に楽ですね。googleアカウントさえあれば完結してしまいます。
昔ながらのレンタルサーバーもFFFTPも要らないですし、CLIでアップロードできるので簡単です。
次回はRealtime databaseとJavaScriiptでチャットアプリの作成にチャレンジしたいと思います。

参考

https://www.topgate.co.jp/firebase01-what-is-firebase
https://dotinstall.com/lessons/hosting_firebase