前提・実現したいこと
現在firebaseとnuxt.jsを使ってチャットアプリを作っています。
なお、今考えている仕様としては簡単に下記を想定しています。
・ユーザーがログインをする。
・ログイン後にグループを作成するかすでにあるグループに入れる
・グループの中にいるユーザーでメッセージを交わすことができる。
問題点・疑問点
firestoreでの多対多のリレーション方法がいまいち理解できていません。。
私が考えた構成は下記になります。
少しわかりづらいかもですが。。 users: collerction documentID: auto name: String email: String password: String avatorURL: String? groupIds: array groups: collerction documentID: auto name: String description: String userIds: array messages: subCollerction documentID: auto message: String
こちらでgroupsとusersのコレクションが多対多の関係にあると思うのですが、
groupsにあるuserIdsに対してはuserの個別のidを配列に入れる。
usersにあるgroupIdsに対してはgroupの個別のidを配列に入れる。
という風にしたら各グループやユーザーから任意のドキュメントにアクセスできるのではないかと思っています。
ですが、公式文を見ると個々のドキュメントでは1MG以上のデータを扱うべきでないとあり、一つのドキュメントに入れているuserIdsやgroupIdsの量が増えた時に問題が生じるのではないかと考えています。
このようなリレーションはどうかという一例をいただけると大変助かります。
どうかよろしくお願いいたします。
調べたこと
・firestoreの公式
・Cloud Firestoreを実践投入するにあたって考えたこと
こちらの記事がとても参考になると思っているのですが、まだ理解できていないです。。
回答1件
あなたの回答
tips
プレビュー