😊

Firebaseはクソ便利なので啓蒙したい。

に公開

背景

サービスを作りたい!
でもバックエンド側を細かく作りたくない的な人向けに
Firebaseを勧めたく、この記事を書いてみます。

Firebase

個人的に主に使う機能

Firebaseにはいくつかの機能があります。
これらの機能を使うと便利です。(語彙力を失うほど便利です)

Firebaseって「レトルトカレーみたいなものです。」(非技術者向け)

「Firestoreとはレトルトカレーみたいなもんです」

超簡単にカレー (システム) が食べられる (組める) という画期的な仕組みなのです。
例えば、通常カレーを作る場合は、下記の手順で行われます。

  1. 野菜/肉を下ごしらえ
  2. 具材を煮る
  3. ご飯を炊く
  4. お皿にもる
  5. 調理器具を片付ける
  6. お皿を片付ける

しかし、レトルトカレーを利用すると、カレーを作るという手順がなくなります。
また、調理に使った調理器具を洗うという付随の業務もなくなります。

  1. 野菜/肉を下ごしらえ レトルトカレーを温める
  2. 具材を煮る
  3. ご飯を炊く
  4. お皿にもる
  5. 調理器具を片付ける
  6. お皿を片付ける

Hostingとは?

ホームページ公開

ウェブサイトを作ろうとすると、作成したあとに公開する必要があります。
古来の方法だとサーバをレンタルする必要があります。

サーバをレンタルしたあとにWebサーバ用のソフトをインストールして、HTMLを設置する必要があります。

信頼できるページにするために

標準ではHTTPという通信でホームページが公開されると思います。
HTTPという通信でやり取りを行う場合、通信は暗号化されずにやり取りされてしまいます。

これでは、途中で通信を傍受するものがいる場合も、内容が丸見えになってしまいます。

これを改善するためにHTTPSという通信に変更する必要があります。
HTTPSにすれば通信は暗号化されて、第三者には確認できなくなります。

HTTPSにするためには、信頼できる鍵を発行する必要があります。
詳細の説明は省きますが、有料で発行する事もできますし無料で発行する事もできます。
しかし、無料で発行する場合は有効期限が短いため、定期的に再発行する仕組みだったり作業が必要になります。

負荷が上がった場合

ここまでで公開ができたと思います。しかし、ウェブサイトへのアクセスが急増した場合、通常のレンタルサーバーでは負荷に耐えきれず、サイトがダウンしてしまう可能性があります。

Firebase Hostingは、このような負荷の急増にも自動的に対応できるスケーラブルなインフラを提供します。世界中に分散されたCDN(コンテンツデリバリーネットワーク)を利用することで、ユーザーに最も近いサーバーからコンテンツを配信し、高速かつ安定したアクセスを実現します。これにより、アクセス数の増加を心配することなく、ウェブサイトを運用できます。

Firestoreとは?

具体的に:データ保存

(ブラウザでデータを保存する場合の話)

ウェブサイトを作っていると、ユーザのデータを保存したくなる場合が出てきます。
その場合、ユーザのデータをサーバ側に保存する必要があります。

このときに、サーバ側に処理を実装する必要があります。
さらに言えば、サーバ側に保存するため、セキュリティなどを考慮して書き込むユーザを認識したり認証する仕組みも必要になってきます。

つまり、バックエンド側の実装が必須になってきます。
単純にコーディング量が2倍になり、考慮する状態が2倍になり…検証も2倍以上になります。(べき乗になる場合が多いです)
つまり作るのが大変というイメージです。

Firebase Firestoreの利点

Firebase Firestoreを利用すると、これらのバックエンド側の実装を大幅に削減できます。FirestoreはNoSQLデータベースであり、データの保存、取得、更新、削除といった操作をクライアントサイドから直接行うことができます。セキュリティルールを設定することで、どのユーザーがどのデータにアクセスできるかを細かく制御できるため、バックエンドの認証・認可の仕組みを自前で構築する必要がありません。

これにより、開発者はフロントエンドの開発に集中でき、サービスのリリースまでの時間を短縮できます。また、Firestoreはリアルタイム同期機能を備えているため、データの変更が即座にすべての接続されているクライアントに反映され、リアルタイム性の高いアプリケーションを容易に構築できます。


この文章はAIによって加筆・完成されました。

Discussion