見出し画像

立ち上げには便利だが難点ありのfirestore


こんにちは!Recept代表の中瀬です。

本日は私が大好きなfirestoreについて。

Firestoreとは?

FirestoreはGoogleが提供する開発プラットフォームで利用できるデータベースです。

NoSQLになっていて、普通のデータベースのテーブルとは異なり、ドキュメントでのデータ管理ができます。

画面設計と合わせて設計するという思想

Firestoreは画面に必要なデータは雑多に預けちゃおう!という思想に基づいて設計するのが主です。

例えば普通のテーブル構造であれば、生徒テーブルと保護者テーブルがあって、生徒の詳細画面で保護者名を表示しようとすると、生徒テーブルに入っている保護者の外部キーを使って保護者名索引します。

これを、Firestoreはひとつのクエリを飛ばして保護者名を取得します。

これが、画面設計に合わせてデータ設計も行う、ということです。

立ち上げがとにかく早い

私は個人的にFirebaseは大好きで、とにかく立ち上げるのが早いです。

また、無料枠も用意されていてサービスのデモや、MVPレベルの実装であればとても簡単に使うことができます。

事実、私の前職でもGCPもAWSも触りましたが、GCPの開発爆速具合はすごいなと思いました。

パフォーマンスで課題が出てくる

一方で、サービスがスケールしてきた時に、Firestoreを使っていると課題が出てきます。

まず、複合クエリに制限があり、リレーショナルDBっぽいデータの取得をしようとするとすぐに上限に達してしまいます。

また、大量データの更新や書き込みの際にパフォーマンスがめちゃ悪くなったりしていて、ERPパッケージの開発で6000件くらいのデータ処理が発生してエラーが出まくったりしてます。

立ち上げはFirestoreでゆくゆくは移行する

私の中で、見出しのような対応を取るのが吉かなという整理になりました。

デモを作る時や立ち上げは爆速開発できる(個人的に私が使いやすいのもあると思いますが)のでFirestoreで作り、本番リリースや、スケールしていく時に、きちんと移行できるようにする。

これが良いなと思いました。


この記事が気に入ったらサポートをしてみませんか?