Closed tani1220 closed 3 years ago
サブコレクションの参照方法は
const Ref = db.collection('コレクション').doc('コレクションID') .collection('サブコレクション').doc('サブコレクションID');
とすればいいが、ダイナミックルーティング使用して、それぞれのデータをページ化するため GetStaticPaths に複数のサブコレクションID(URL)を教える必要がある。
それを実現するためにコレクションIDの一覧を取得する関数を作成して、上記の参照方法を試してみたがサブコレクションIDを取得することができない
サブコレクションに対してクエリが書けるコレクショングループクエリがあるが、サブコレクションのドキュメントIDを取得することはできなさそう
ドキュメンテーションでコレクションのリストを取得することは、モバイル/ Webクライアントライブラリでは不可能と書かれている
こちらの記事によると、(1)サブコレクションのリスト一覧を実現するためには親ドキュメントのフィールドにArray型を定義して子ドキュメントIDを格納する方法と(2)Cloud Functionでサーバークライアントライブラリを使用して、クライアントで呼び出す方法があるみたい
(1)では、子ドキュメントにIDを指定する必要がある。子ドキュメントのフィールドにはディスカッションデータが入っていて、ユーザーからのアクション(質問投稿時)に作成される。ユーザーが複数の質問をする場合を考えると、複数のドキュメントIDが二重になるのでダイナミックルーティンが実現できない (2)ドキュメンテーションやリフェレンスを読むとサーバークライアントライブラリを使ってクライアントから呼び出せばサブコレクション一覧が取得できそう
firestore / サブコレクションIDの一覧を取得したい
解決に時間が掛かりそうだったのでIssue化