Skip to content
shunsei.dev
Go back

個人開発でFirestoreを選ぶべき?メリットからコスト、セキュリティについて考えてみる

Edit page

はじめに

個人開発でアプリを作ろうと思ったとき、多くの人がぶつかる壁が「バックエンドどうしよう…」問題。APIサーバーを立てて、データベースを管理して…と考えると、ちょっと尻込みしてしまいますよね。

この分野は「BaaS (Backend as a Service)」と呼ばれ、サーバー側の面倒な部分を丸っとお任せできる便利なサービスがいくつも存在します。その代表格がGoogleのFirebaseですが、最近では強力なライバルも登場しています。

まずは、主要なBaaSサービスがそれぞれどんな特徴を持っているのか、下の図で全体像を掴んでみましょう。

あなたはどのタイプ?

このように、それぞれに得意なことや思想が異なります。

この記事では、「Firestoreって名前は聞くけど、実際どうなの?」と感じている個人開発者の方に向けて、

などを、個人開発者目線で解説していきます。

ちなみにFirestoreとは何か、を軽く説明すると「Googleが提供する、サーバー開発なしで直接アプリから使えるNoSQLデータベース」のこと。これだけ覚えておけばOKです。 詳細は以下で確認してください。

Firestore  |  Firebase
Google Cloud インフラストラクチャ上に構築された柔軟でスケーラブルな NoSQL クラウド データベースを使用して、クライアントサイドおよびサーバーサイド開発用のデータを保存および同期します。
Firestore  |  Firebase favicon firebase.google.com

🚀 個人開発でFirestoreを選ぶメリット

まずは、なぜFirestoreが個人開発の強い味方と言われるのか、そのメリットを見ていきましょう。

😥 デメリットと注意点

もちろん、良いことばかりではありません。採用する前に知っておきたいデメリットもあります。

🗂️ Firestoreの仕組み

Firestoreを使いこなすには、その独特なデータ構造を理解することが不可欠です。でも大丈夫、考え方はシンプルです。よく「フォルダとファイル」に例えられます。

この仕組みを、SNSのようなアプリを例に図で見てみましょう。

この図は、Firestoreのデータベースの中に2つの大きな「フォルダ」がある状態を表しています。

  1. usersとpostsという2つのコレクション(フォルダ)が最上位にあります。
  2. usersコレクションの中を覗いてみると、user_Aやuser_Bといった、個々のユーザー情報を格納したドキュメント(ファイル)が入っています。
  3. user_Aドキュメントの中身は、nameやemailといった具体的なデータフィールドです。
  4. ここで注目したいのがuser_Bです。このドキュメントの中には、さらにtweetsというサブコレクション(user_Bさん専用のツイートフォルダ)が存在します。
  5. そして、そのtweetsサブコレクションの中に、個々のツイートデータがtweet_001のようなドキュメントとして保存されていきます。

このように、データを階層的に管理することで、「user_Bさんのツイートだけを全部取得したい」といった操作が非常に効率的に行えるようになります。このデータ構造の設計が、Firestoreを使いこなす上で最も重要なポイントになります。

🧐 個人開発者が本当に気になる3つのこと

さて、ここからはさらに踏み込んで、個人開発者が特に気になるであろう3つのポイントについて解説します。

1. セキュリティは大丈夫?

結論:正しく設定すれば問題ない。でも設定は自己責任!

Firestoreのセキュリティは、セキュリティルールという設定ファイルで全て管理します。これを設定しないと、データベースが誰でも読み書きできる状態で丸裸になってしまうので、絶対に設定が必要です。

例えば、以下は「ログインしているユーザーは、自分のユーザー情報しか読み書きできない」という、ほぼ全てのアプリで必須となるルールです。

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // "users"コレクションの、任意のドキュメント({userId})に対して
    match /users/{userId} {
      // 読み書きを許可する条件は、
      // リクエストしてきたユーザーのIDと、ドキュメントのIDが一致すること
      allow read, write: if request.auth.uid == userId;
    }
  }
}

難しそうに見えますが、このルールを適切に設定することで、サーバーサイドのコードなしに堅牢なセキュリティが実現できます。**「Firestoreを使う = セキュリティルールを学ぶ」**ことにも繋がるので、ぜひ意識してみてください。

2. コストはどれくらい?

結論:無料枠が神。でも油断は禁物!

Firestoreの無料枠は非常に強力で、個人開発のうちはまず超えることはないでしょう。

無料枠割り当て
保存データ1 GiB
ドキュメントの読み取り50,000/日
ドキュメントの書き込み20,000/日
ドキュメントの削除20,000/日
送信データ転送10 GiB/月

上記は2025年時点の情報なので、最新の使用量と上限についての詳細は以下から確認できます。 https://firebase.google.com/docs/firestore/quotas?hl=ja

これだけあれば、安心して開発できますよね。 ただし、無料枠を超えたときのことを考えて、以下の対策は必ず行いましょう。

3. 学習は難しい?

結論:始めるのは超簡単。使いこなすにはコツがいる

簡単な点

環境構築が不要で、基本的なデータの読み書きは公式ドキュメントを見ればすぐに実装できます。プログラミング初学者でもとっつきやすいです。

学習が必要な点

🔮 2025年、Firestoreのこれからとどう向き合うか

Firestoreが個人開発の強力なツールであることは、2025年になっても変わりません。 最近では、以下のような新しい動きもあり、さらに便利になっています。

AIによる開発支援 (Gemini in Firebase)

「こういうデータ構造を作りたい」と自然言語で指示すると、コードやセキュリティルールを生成してくれる機能が強化されています。学習のハードルを下げてくれる良い相棒になりそうです。 https://firebase.google.com/docs/gemini-in-firebase?hl=ja

SQLも使えるFirebase Data Connect

「やっぱりSQLが使いたい!」という声に応え、PostgreSQLなどのSQLデータベースもFirebaseから直接扱えるサービスが登場しました。これにより、アプリの特性に合わせてNoSQLとSQLを使い分ける選択肢が生まれました。 https://firebase.google.com/docs/data-connect?hl=ja

まとめ:Firestoreは個人開発の武器になるか?

Firestoreは、以下のようなアプリを開発したい個人開発者にとって、最高の武器になります。

何より、これだけの機能を無料で試せるのがFirestoreの素晴らしいところです。まずは触ってみて、そのパワーを体感してみてください。

個人開発ライフが、もっと楽しく、もっとスピーディになることを願っています。


Edit page
Share this post on:

Previous Post
Goのdeferを図解で理解する
Next Post
PlaywrightのE2Eテストは攻撃判定されないのか? AWS WAFと共存するための実践的セキュリティ対策