立ち上げには便利だが難点ありのfirestore
こんにちは!Recept代表の中瀬です。
本日は私が大好きなfirestoreについて。
Firestoreとは?
FirestoreはGoogleが提供する開発プラットフォームで利用できるデータベースです。
NoSQLになっていて、普通のデータベースのテーブルとは異なり、ドキュメントでのデータ管理ができます。
画面設計と合わせて設計するという思想
Firestoreは画面に必要なデータは雑多に預けちゃおう!という思想に基づいて設計するのが主です。
例えば普通のテーブル構造であれば、生徒テーブルと保護者テーブルがあって、生徒の詳細画面で保護者名を表示しようとすると、生徒テーブルに入っている保護者の外部キーを使って保護者名索引します。
これを、Firestoreはひとつのクエリを飛ばして保護者名を取得します。
これが、画面設計に合わせてデータ設計も行う、ということです。
立ち上げがとにかく早い
私は個人的にFirebaseは大好きで、とにかく立ち上げるのが早いです。
また、無料枠も用意されていてサービスのデモや、MVPレベルの実装であればとても簡単に使うことができます。
事実、私の前職でもGCPもAWSも触りましたが、GCPの開発爆速具合はすごいなと思いました。
パフォーマンスで課題が出てくる
一方で、サービスがスケールしてきた時に、Firestoreを使っていると課題が出てきます。
まず、複合クエリに制限があり、リレーショナルDBっぽいデータの取得をしようとするとすぐに上限に達してしまいます。
また、大量データの更新や書き込みの際にパフォーマンスがめちゃ悪くなったりしていて、ERPパッケージの開発で6000件くらいのデータ処理が発生してエラーが出まくったりしてます。
立ち上げはFirestoreでゆくゆくは移行する
私の中で、見出しのような対応を取るのが吉かなという整理になりました。
デモを作る時や立ち上げは爆速開発できる(個人的に私が使いやすいのもあると思いますが)のでFirestoreで作り、本番リリースや、スケールしていく時に、きちんと移行できるようにする。
これが良いなと思いました。
この記事が気に入ったらサポートをしてみませんか?