0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Firebaseでサブコレクションまで再帰的に削除する上での作業備忘録

Posted at

作業備忘録なので、自分がわかるようにしか書きません。申し訳ありませんが、参考にならないと思います。

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

完了し次第、備忘録に追加する予定...

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?