iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

Cloud Firestore 概要

Cloud Firestore とは?

高速でサーバレスなクラウド NoSQL ドキュメントデータベースです。Firebase Realtime Database と同様にスキーマレスかつリアルタイムにデータを監視することができます。

f:id:yum_fishing:20200804205413p:plain

公式ドキュメント

メリットは?

一番大きなメリットとしては開発コストの大幅な削減です。Firebase Realmtime Database もそうですが、 Cloud Firestore は基本的にサーバレス DB なので、自前でサーバを構築する必要がなくなり。維持コストを削減 することができます。また Cloud Firestore はスキーマレスなのでデータの構造などを柔軟に変えることができ、 開発スピードの向上も見込めます。また、ある程度サービスの規模が小さいまたはテストプロトタイプとして利用する場合は ほぼ無料で使うことができます。具体的な料金についてはこちらを参照してください。

デメリットは?

デメリットとしては、Firebase Realtime Database もそうですが、スキーマレスであるが故に柔軟性がありますが、 その分設計やセキュリティルール などの設定は難しくなります。また、Cloud Firestore は Firebase Realmtime Database とドキュメントデータベース になったことで複合クエリができたりして、検索性は大幅に向上していますが、それでも十分とは言えないので、 検索APIの,Algoliaなどの使用も検討しておくと良さそうです。また、 Firebase Realmtime Database はツリー構造のデータベースなので Json による一括インポートなどが可能でした が、Cloud Firestore はドキュメント型のデータベースなので、そのように小回りのきく操作は難しいそうです。

まとめ

Firebase Realtime Database と迷った時は基本的には Cloud Firestore を選択して問題なさそう。ただ、DB の以降で使用したり、ノードの子コレクションに対しても明示的に変更通知を受け取りたい場合などは Firebase Realtime Database の方が良さそう。また、スキーマレスが故に設計やルールの設定などは複雑化したり、検索性が十分ではないことなどのデメリットも存在するが、Firebase 全体としてのスケーラビリティの高さだったり、他のサービスとうまく組み合わせることで開発スピードは飛躍的に向上すると考えられる。

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com