作業備忘録なので、自分がわかるようにしか書きません。申し訳ありませんが、参考にならないと思います。
FirebaseのFirestoreにおいて、ドキュメントを削除しても、ドキュメント配下のサブコレクションは削除されない問題がある。
公式では、FirebaseのFunctionsサービスを用いて、サーバサイドに削除関数を配置してクライアント側から呼び出すように設定することを推奨している。
Functionsのサンプルコードは以下になる。
https://github.com/firebase/snippets-node/blob/master/firestore/solution-deletes/functions/index.js
Functionsを使えるようになるまでにもろもろの設定があるが(設定手順は紹介しない)、デフォルトのままだと上記のコードをデプロイしてもエラーが起きる。
参考までにデプロイ時のコードを以下に載せる。
sudo firebase deploy --only functions
エラー内容は以下のようなものになる。
function terminated. Recommended action: inspect logs for termination reason. Additional troubleshooting documentation can be found at https://cloud.google.com/functions/docs/troubleshooting#logging Function cannot be initialized
原因はパッケージ不足だった。
プロジェクトフォルダ/functions/上で以下のコマンドを実行することで、firebase-toolsが使用できるようになるのでデプロイが成功するようになる。
(プロジェクトフォルダ/node_modulesとプロジェクトフォルダ/functions/node_modulesが共有でないことに気づくまでに時間がかかったため、備忘録として追加しておく)
sudo npm install --save firebase-tools
デプロイが成功したため、今度はフロント側から呼び出すコードが必要になる。
以下の公式が推奨する手順の「クライアントからの呼び出し」という項目を進めていく。
https://firebase.google.com/docs/firestore/solutions/delete-collections?hl=ja
完了し次第、備忘録に追加する予定...