😸
表で見るFirestore利用例
Flutterでアプリを作る際に、Firestoreを少し触ってみました。
コードで利用するイメージつけるために、まず簡単な表にすることが良いかもしれないと思いましたので、
その例を記載します。
Firestore利用例
事前知識
-
公式サイト
-
以下の表の見方
-
[]
で囲まれているものは、実際の値とは異なる- 例: [ユーザID]
- ドキュメントとして、117727241635087384434のような値を持つ
- 例: [ユーザID]
-
{}
で囲まれているものは、実際の値とは異なる複数の値- 例:{ユーザ情報}
- フィールドとして、以下のような値を持つ
- androidNotificationToken
- bio
- displayName
- id
- photoUrl
- timestamp
- username
- フィールドとして、以下のような値を持つ
- 例:{ユーザ情報}
-
Word Wolf(ゲーム)
- ポイント
- ドキュメントにカテゴリーやワード名を利用することで、ブラウザで見やすくなる
- 例:
- ドキュメント①:野菜
- ドキュメント②:にんじん
- ドキュメント②:かぼちゃ
- ドキュメント②:すいか
- ドキュメント①:野菜
コレクション① | ドキュメント① | コレクション② | ドキュメント② | 作成契機 |
---|---|---|---|---|
words | [カテゴリー名] | categoryWords | [ワード名] | Word作成時 |
SNSアプリ
-
【参考】Build a Social Network App with Flutter and Firebase | Udemy
-
ポイント
- それぞれのコレクションでユーザIDやpostIdが連携していることで、処理がしやすくなる(Functions利用等)
- lengthでフォロワー数/フォロー数がわかったり、
length.toList()
でフォロワー/フォローユーザIDのリストを作ることが可能
-
注意
- ドキュメントがそれぞれ、コレクションまたは、フィールドを持つ、または持たないことがある
コレクション① | ドキュメント① | フィールド① | 作成契機 |
---|---|---|---|
users | [ユーザID] | {ユーザ情報} | Create User時 |
コレクション① | ドキュメント① | コレクション② | ドキュメント② | フィールド① | 作成契機 |
---|---|---|---|---|---|
posts | [投稿したユーザID] | userPosts | [投稿した際のpostId] | {投稿情報} | Post時 |
コレクション① | ドキュメント① | コレクション② | ドキュメント② | 作成契機 |
---|---|---|---|---|
following | [フォローした側のユーザID] | userFollowing | [フォローされた側のユーザID] | フォロー実行時 |
コレクション① | ドキュメント① | コレクション② | ドキュメント② | 作成契機 |
---|---|---|---|---|
followers | [フォローされた側のユーザID] | userFollowers | [フォローした側のユーザID] | フォロー実行時 |
コレクション① | ドキュメント① | コレクション② | ドキュメント② | フィールド① | 作成契機 |
---|---|---|---|---|---|
feed | [feedされた側のユーザID] | feedItems | [feed対象のpostId] | {投稿情報とfeed情報} | Like、フォロー、コメント実行時 |
コレクション① | ドキュメント① | コレクション② | ドキュメント② | フィールド① | 作成契機 |
---|---|---|---|---|---|
comments | [コメント対象のpostId] | comments | [コメント自体のId] | {コメント者の情報とコメント内容} | コメント実行時 |
コレクション① | ドキュメント① | コレクション② | ドキュメント② | フィールド① | 作成契機 |
---|---|---|---|---|---|
timeline | [timelineの持ち主のユーザID] | timelinePosts | [timelineに表示するpostId] | {投稿情報} | 投稿、Like、フォロー、コメント実行時 |
Discussion