SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

GoogleのmBaaS「Firebase」を活用したスマートなアプリ開発

どちらを選ぶ? Firebaseが提供する2つのデータベース「Realtime Database」「Cloud Firestore」

GoogleのmBaaS「Firebase」を活用したスマートなアプリ開発 第6回

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

Cloud Firestoreについて

 Cloud Firestoreは、データをドキュメントのコレクションとして格納でき、Realtime Databaseよりも直感的な新しいデータモデルを使用して構築されています。またRealtime Databaseよりもリッチで高速なクエリとスケールを備えています。

 シンプルなデータはJSONに似たドキュメントに格納し、複雑な階層データはサブコレクションを利用して、簡単に整理することができます。前述したRealtime Databaseの場合は指定したパスの下層にあるデータは原則すべて取得されてしまったり、リアルタイムにそのデータを元に更新をかけたい場合、下層のデータすべてを対象にして更新時にトリガーされてしまったりします。それに対し、Cloud Firestoreでドキュメントに参照を作った場合、そのドキュメントのデータまでを取得する形になり、サブコレクション、さらにその下層のドキュメントは対象になりません。

 適切にデータの設計を行う必要はありますが、Realtime Databaseと比較してリアルタイムの参照と更新についての挙動をコントロールしやすくなると言えます。その上でデータを処理、取得するためのクエリは複合的な内容が扱え、複雑なものを使用することができるのが大きな違いとなります。そのためデータの処理に複雑なクエリを用いたい場合にはCloud Firestoreを選ぶことが賢い選択と言えるでしょう。

 なお、気になる料金体系ですが、2023年9月現在、無料割り当てとして保存データが1GB/日、ドキュメントの読み込みが50,000/日、ドキュメントの書き込み・削除がそれぞれ20,000/日、下り(外向き)ネットワークが10GB/月となっています。無料割り当てを超過すると保存データ0.18ドル(GB/月)、ドキュメントの読み取りが0.06ドル(100,000点あたり)、書き込みが0.18ドル(100,000点あたり)、削除が0.02ドル(100,000点あたり)となっています。

 課金の例などもありますので、実際に使用する際にはシミュレーションを行った上で検討するとよいと思います。

Cloud Firestoreの利用がおすすめされる機能例

ユーザープロフィール

 例えばCloud Firestoreの柔軟なスキーマを利用すると、新しいプロパティを追加して機能にその情報を利用するようなことが可能です。この際スキーマの変更はダウンタイムなしで行われ、ユーザー数が増えてもパフォーマンスが低下しないという利点があります。

マルチデバイスでのデータ同期

 接続されているすべてのデバイスで、常に最新の状態が表示されます。Firestoreは、共同編集可能なマルチユーザーモバイルアプリや、複数のデバイスから接続するアプリに一貫した状態を提供します。ただし、クライアントのオンライン/オフラインの接続状況変化の度に更新を提供する機能としてはRealtime Databaseの方がネイティブで利用できる状態になっており、Cloud Firestore利用時にはプレゼンスを構築しておく必要があります。

どちらのデータベースを選ぶべきか?

 Realtime DatabaseとCloud Firestoreの内容を見ていきましたが、どちらを選ぶか悩んだ際には、データの複雑さ、データ利用時のクエリの複雑さ、料金形態を鑑みて選択を行うことが重要です。Firebaseとしては、基本的にはCloud Firestoreの方が推奨されているような印象がありますが、シンプルなデータのやりとりであればRealtime Database、より複雑なデータの出し入れが必要な場合にはCloud Firestoreを選択するのが良いと言えます。

 上記の内容を踏まえた上で、どちらのデータベースを選ぶべきか迷った際には、公式ドキュメントでの簡単な質問項目が用意されています。二者択一で、選択肢に応じて「こちらの方がおすすめです」という表示がされますので、ぜひ一度確認してみると良いでしょう。

おわりに

 以上、第6回をもちまして本連載は終了となります。過去の記事でもFirebaseを活用したスマートなアプリ開発を実施するための各機能について説明を行っていますので、まだご覧いただいていない方はぜひお目通しいただき、Firebaseを活用して実現が可能な効率的なスマホアプリ開発にチャレンジしてみてください。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
GoogleのmBaaS「Firebase」を活用したスマートなアプリ開発連載記事一覧

もっと読む

この記事の著者

株式会社ブリューアス PMO室(カブシキガイシャブリューアス ピーエムオーシツ)

 スマホアプリ開発を中心にUIUXデザインからWeb制作まで、多様な技術力と実績を持つ開発会社です。BtoBからBtoCまで幅広い領域での制作・開発経験があります。 Brewus.inc

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/18308 2023/09/15 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング