こんにちは。virapture株式会社でCEOしながらラグナロク株式会社でもCKOとして働いている@mogmetです。
リリースが立て込んでなかなかアウトプットができてなかったのですが、本日から再開しようと思います!
本日はfirestoreの設計書を書くときに私が使っているフォーマットの紹介です。
前提
firestoreの設計書として必要な要素としては、CollectionのPATH情報、フィールドの要素についてが分かれば十分と考えています。
リポジトリのREADME.mdでマークダウンで書く方法もありますが、保守しづらい部分もあったのでconfluenceなどのドキュメント管理ツールで作ることをお勧めします。
設計書フォーマットの紹介
今回はチャットサービスを考えた場合のサービスで設計をしてみます。
では早速紹介します。
下記にコピペ用のフォーマットを記載しておきます。
## 基本構造
### users/{uid}
ユーザ情報をまとめる
uidはFirebaseAuthenticationのuidと同等
|Field|Type|Description|Sample|
|---|---|---|---|
|createdAt|Timestamp|作成日時|1987-12-01 00:00:00|
|username|string|ユーザ名|もぐめっと|
### chatRooms/{chatRoomId}
チャット部屋一覧。
lastChatに関してはCloudFunctionsで自動的に更新される。
|Field|Type|Description|Sample|
|---|---|---|---|
|createdAt|Timestamp|作成日時|1987-12-01 00:00:00|
|updatedAt|Timestamp|作成日時|1987-12-01 00:00:00|
|title|string|部屋名|もぐめっとの部屋|
|lastChat|string?|最後のチャット|犯人はヤス...|
### chatRooms/{chatRoomId}/chats/{chatId}
チャット部屋に送信されるチャット情報。
|Field|Type|Description|Sample|
|---|---|---|---|
|createdAt|Timestamp|作成日時|1987-12-01 00:00:00|
|chat|string|送信されたチャット|犯人はヤス...|
## ビジネスプラン周りの構造
...
見出しをPathにすることで目次を表示したときに一覧してみやすくなるのでとてもおすすめです。
Pathに関してはDocument IDに対して特筆があれば記載しています。
コレクションの説明について、さらに実際の画像なども一緒に乗せるとなおわかりやすい設計書になると思います!
また、ある程度コレクションに塊の意味があれば別途H2で分けるとよりわかりやすくなります。(課金周りの構造をまとめるなど)
まとめ
Firestoreの設計書のテンプレートになるようなフォーマットを紹介いたしました。
是非新規サービスを作るときの参考にしてもらえたら幸いです。
最後に、スノボの楽しく滑るコツを掴める cotsume というアプリを作ってます!よかったらDLしてみてね!
また、ワンナイト人狼オンラインというゲームを作ってます!よかったら遊んでね!
他にもCameconやOffcha、問い合わせ対応が簡単にできるCSmart、フリーランスのコミュニティのNextFreelanceといったサービスも作ってるのでよかったら使ってね!
また、チームビルディングや技術顧問、Firebaseの設計やアドバイスといったお話も受け付けてますので御用の方は弊社までお問い合わせください。
ラグナロクでもエンジニアやデザイナーのメンバーを募集しています!!楽しくぶち上げたい人はぜひお話ししましょう!!