初めに
- 参考にしたサイトはこちら
- firebaseのデータベースの削除方法で苦労したのでアウトプットとしてこの記事を書きました。
データベースの削除
指定したドキュメント(id)を削除するは
db.collection('').doc(id).delete()
上記のコードでできたのですが、コレクション全体を一括削除する時に
db.collection('').delete()
上記のコードで出来ると思ったのですがエラーになってしましました。
エラーの原因は、コレクションを直接削除しようとしたところと判明しました。
コレクションを削除するにはコレクション内のすべてのドキュメントを取得して削除しないといけなかったみたいです。
→参考サイト
解決方法としてbatchメソッドを活用しました。
引用先
オペレーション セットでドキュメントを読み取る必要がない場合は、複数の書き込みオペレーションを 1 つのバッチとして実行できます。このバッチには、set()、update()、delete() オペレーションを自由に組み合わせて含めることができます。書き込みのバッチはアトミックに実行され、また複数のドキュメントに対する書き込みを実行できます。
const Ref=db.collection('');
const batch = db.batch();
for(const product of products){
batch.delete(
Ref.doc(product.id)
)
}
batch.commit()
.then(()=>{
console.log("成功")
})
(productsには対象のコレクションのドキュメントの情報がすべて入っていると仮定します。)
上記のコードでbatchメソッドを実行し一括削除することに成功しました。