🔥

Firestore の設計を学ぶ上で参考にしたものまとめ

2024/08/28に公開

今まで RDB を使ってきていたのですが、最近 Firestore を使うケースがあったので、新しくキャッチアップを始めました。
同じように RDB の経験はあるものの、NoSQL の知識もあまりないような人向けに、どんなふうにキャッチアップをするとわかりやすかったかまとめておきます。

これから初めてプロダクト開発をするよーって人は、もう少し初心者向けの Udemy の動画などをみた方が良いかもしれません。

実践Firestore 技術の泉シリーズ (技術の泉シリーズ(NextPublishing))

有料の本ですが、一番よかったのでおすすめ。
https://nextpublishing.jp/book/11387.html

特にセキュリティルールの使い方はかなり詳しく書かれています。
Firestore を使用したシステム全体の構成をどうするべきか理解できましたし、その上でどのように Firestore のモデリングをするかが理解できます。

色々とネットの記事を漁るよりもこれを読むのが早かったです。

ちなみに、下記のレビューが Amazon にありました。これは確かにそうですね。

Firebaseの入門書ではありません。
ある程度のスキルがあり、アプリケーションが作れる方ではないと内容が理解できないと思います。
何かのサンプルを作り上げていくスタイルではありません。

冒頭に書いたように、今まで RDB を使ってきた経験がある人からすると、知りたいことだけ知れるので満足度が高いと思います。
逆にプロダクト開発に慣れていない人はサンプルを一緒に作るようなものの方が良さそうですね。
第7章に「ショッピングサイトを実装してみる」という項目があるのですが、RDB なら大体こんな感じだよなとわかる人はこの本で学ぶのが良いと思います。

mogaのサービス開発研究所

YouTube なんですが、これもわかりやすかったです。Firestore 周りの話は 4 年前の動画なので少し古いんですが、そこまで問題はなさそうに思います。(ここら辺の情報が古いよってことがあれば教えて欲しい...)
https://www.youtube.com/@mogadev/

実際に設計するところを動画にしてくれています。
いきなり実際の設計だけ見ても難しいと思うのですが、先ほどの書籍などで一度知識を入れた上で見ると理解が深まりました。

https://www.youtube.com/watch?v=Twd7i2H-jaQ

https://www.youtube.com/watch?v=NNikNuhsABU

クライアントジョインも大事

https://www.youtube.com/watch?v=KnGnxufvYGg

その他の記事

ベストプラクティスは存在するので読みましょう。
https://cloud.google.com/datastore/docs/best-practices?hl=ja
https://firebase.google.com/docs/firestore/best-practices?hl=ja

ここら辺も読みました。
https://qiita.com/1amageek/items/d606dcee9fbcf21eeec6#model設計
https://speakerdeck.com/bitkey/firestoretoumakufu-kihe-utameni

調べていて、Firestore から移行した記事がちらほら合ったのでそれも確認しました。ここら辺を読むと、どこが辛いのかわかりそうだなと。
https://techblog.zozo.com/entry/faans-firestore-to-postgresql
https://www.keisuke69.net/entry/2022/08/02/121829

逆の Firestore へ移行するケース。
https://tech.andpad.co.jp/entry/2021/03/23/170000
https://fortee.jp/iosdc-japan-2021/proposal/b1b94452-dd4b-4581-8797-f348919ee362

注意点

調べると結構古い記事も出てくるのですが、5年以上前の記事で更新がないものは注意です。
2019 年に CollectionGroup が出てきたようで、これ前後で設計が変わります。
https://qiita.com/1amageek/items/343f262ba3b50e657078

そのため、もし古い記事を参考にする場合には注意をしてください。

Discussion