Firebase

Firebaseを学び始める前に解消したい10の疑問

  • このエントリーをはてなブックマークに追加

はじめてFirebaseを学んだときは良さがまったくわかりませんでした。 それはいまいちメリットがわかりづらかったりわからない概念が多かったからです。

けれど、先日Firebaseを使ってアプリを開発してく中でFirebaseの便利さがわかりWeb業界に革命を起こす技術であることを確信しました。

今回はFirebaseをスムーズに学習するために必要な知識をQ &A方式で解説しています。Webに関わっていてFirebaseを使ったことのないすべての人におすすめの記事です。

そもそもFirebaseってなに?

Firebaseは Googleが提供しているクラウドサービスです。Firebaseを使うとバックエンドアプリの開発コストと運用にかかる人的コストを大幅にさげることができます。

ログイン処理や簡単なデータの参照・登録といった仕組みをFirebaseに丸投げできるイメージです。

クラウドとして提供されているのでデータベースをインストールしたり監視をしたりといった運用にかかる手間を省くことができます。

これを使うと多くのアプリケーションのバックエンドはデータへのアクセス判定のロジックつまり、「誰が何にアクセスできる」というロジックを実装するだけで済みます。

テーブル設計も不要です。ドキュメント指向型データベースなので柔軟にデータ構造を変更できます。そのため作りながらデータ構造を考えることができます。

なんでこんなに注目を浴びているの ?

Firebaseは数年前からある技術です。今になってなんでこんなに注目を浴びているのかと言うと去年から提供が開始されたFirestoreというデータベースの登場が大きいです。

これによって、従来のFirebaseでは実装が難しかった細やかなアクセス制御が実装できたりスケーリングも容易になったため運用いらずでそこそこしっかりしたサービスが組めるようになりました。

どんなものを作れるの?

基本的なREST APIで済むアプリであればバックエンドはFirebaseで簡単に作成できます。データを保存して表示するだけのアプリであればFirebaseで作成できます。

具体的にはトークアプリや掲示板アプリなど投稿型のアプリであればFirebaseで作ることができます。

逆にFirebase単体で出来ないものはバックエンド側で複雑な処理を行う場合です。データを加工して結果を返すことが必要なアプリはFirebase単体では完結しません。

お金はかかるの?

Firebaseには無料枠があります。この範囲を超えなければ無料でFirebaseを利用することができます。趣味で使う程度であればこの無料枠の範囲を超えることがないでしょう。

https://firebase.google.com/pricing/?hl=ja

何から手をつければ良いの?

チュートリアルはたくさんあります情報が少し古かったりして良いものがありません。作りたいものがあればそれを作りつつ問題にぶつかったら公式ドキュメントを読みつつ学んで行くのがおすすめです。

もし作りたいものがないけど学びたい人は書籍で学ぶのがおすすめです。

書籍だと「Firebaseによるサーバーレスシングルページアプリケーション (技術の泉シリーズ(NextPublishing))」がおすすめです。理由としてはFirestoreについて詳しく解説されている書籍が日本語だとこれだけだからです。

他の書籍は今学んでもあまり旨味のないRealtime Databaseの話にページが割かれておりFirestoreをどこかで学び直さないと行けなくて効率が悪いです。

Realtime database? Firestoreどっち?

使い始めたらデータベースを選ぶ画面になります。併用することもできますが私のおすすめはFirestoreだけを使うことです。

理由としてはRealtime databaseでできることはFirestoreでできるからです。

しかも、簡単で低コストでスケーラビリティに優れているのでRealtime Databaseの上位互換です。

強いてFirestoreが劣っている点をあげるなら学習コストが少し高いことです。けれど、これも使っているうちに慣れます。

Vue? React? Angularどれが良い?

Firebaseを使う場合、フロントエンドフレームワークを使うことになると思います。jQueryでも作れないことはないですがWeb上に情報が不足しているのが難点です。

これを機に新しくフロントエンドフレームワークを学んでみることをおすすめします。

わたしのおすすめはVue.jsです。理由としてはこの3つの中では習得コストが一番低いフレームワークだからです。また、新しいフレームワークで人気上昇中。さまざまなサービスがVue.jsで開発され始めています。

Reactは私が一番好きなフレームワークです。最近はスマートフォンアプリなどを組めて便利な言語です。けれど、学習コストが高いのが難点です。Firebaseを学びながらReactを学ぶのは大変なので今回はおすすめしません。

Angularも学習コストが高いのでおすすめしません。

フロントエンドフレームワークについて面白い記事があるのでこちらも参考にしてみてください。

ヤフー株式会社におけるWebフロントエンドの技術選定

Firestoreって何?

まずは公式ドキュメントには次のように書かれています。

Cloud Firestore は、Firebase のモバイルアプリ開発用の最新データベースです。直感的な新しいデータモデルで Realtime Database をさらに強化しています。Cloud Firestore は、Realtime Database よりも多彩で高速なクエリと高性能なスケーリングが特徴です。

https://firebase.google.com/docs/database/rtdb-vs-firestore?hl=ja

FirestoreはRealtime Databaseを強化したものと説明されて入れています。そこで、Realtime Databaseとは何かという話になると思います。

Realtime Databaseの概念は簡単です。jsonフォーマットでデータを管理しているデータベースです。ユーザー情報が辞書型オブジェクトになっていてユーザーテーブルの代わりにユーザー情報のリストになっている感じです。

しかし、jsonフォーマットではデータのアクセス制御を行うために複雑なクエリを書かないといけません。それが従来のFirebaseの問題点でした。

そこでFirestoreというドキュメント指向データベースが採用されてjsonフォーマットぐらい柔軟なうえでアクセス制御がしやすくなりました。

データ設計は何から学び始める?

Firestoreでのデータ設計を考える上で役立ったのは以下の公式ドキュメントです。基本的にはこの知識を知っていれば自分でアクセス制御を意識したデータ設計ができます。

https://firebase.google.com/docs/firestore/solutions/role-based-access?hl=ja

挫折しそう…どうすれば良い?

Firebaseを利用するためにはフロントエンドフレームワークやドキュメント指向データベースなど一緒に身に着けなければならない周辺技術が多いです。

そのため難しいと感じで挫折しそうに思えます。そういうときは一度、フロントエンドフレームワークについて学んで見ることをおすすめします。

フロントエンドフレームワークはNode.jsの独特な言語仕様で初心者の方には馴染めにくいです。なので、挫折しそうというときにはフロントエンドフレームワークに慣れてみるのをおすすめします。

Vue.jsは基礎から学ぶ Vue.jsがおすすめなので参考にしてみてください。

あとはやってみるだけ

最後まで読んでいただきありがとうございます。これで学び始める前に必要な知識はついたはずです。あとは初めて見るだけです!

Firebaseに関する記事をこれからたくさん書いてきます。Twitterで最新記事やプログラミング独学に役立つ情報を流しているのでフォローお願いします。

  • このエントリーをはてなブックマークに追加

コメントを残す

*