ファイル削除
ファイル一覧表示処理で表示されたリストを対象に、ユーザーが複数ファイルを選択して削除する機能を作成していきます。
ファイル削除機能では、次の2つの処理を用意します。
deleteSelectedFiles() : 削除する対象ファイルを特定する処理
deleteFile() : Firebase FirestoreとFirebase Storageから特定のファイルを削除する処理
deleteSelectedFiles
関数
deleteSelectedFiles
関数ファイル一覧上でチェックされたファイルを特定し、ファイルを削除するdeletelFile
関数に識別子(docId)を渡します。
処理の流れ:
チェックされたファイルの識別:
document.querySelectorAll("#files-list input[type='checkbox']:checked")
を使用して、IDがfiles-list
の要素内にある、チェックされたチェックボックスを全て取得します。
選択されたファイルの削除:
各チェックボックスから
value
属性を読み取り(これはドキュメントIDに対応しています)、deleteFile
関数を呼び出して、そのIDに対応するファイルを削除します。deleteFile
は、FirestoreとFirebase Storageの両方からファイルを削除する関数です。
ファイル一覧の再表示:
displayFileList()
関数を呼び出して、ファイル一覧を更新します。これにより、削除されたファイルが一覧から取り除かれます。
deleteFile
関数
deleteFile
関数Firebase FirestoreとFirebase Storageから特定のファイルを削除します。この関数により、FirestoreとFirebase Storageの両方から関連するファイルとメタデータを同時に削除できます。
パラメータ:docId
: 削除するファイルのドキュメントIDを表します。
処理の流れ:
Firestoreからのドキュメント削除:
doc(firestore, "files", docId)
を使用して、Firestore内のfiles
コレクションにある特定のドキュメント(ファイル)への参照を取得します。deleteDoc(docRef)
を使用して、上記で取得したドキュメント(ファイル)をFirestoreから削除します。
Firebase Storageからのファイル削除:
ref(storage, "files/" + docId)
を使用して、Firebase Storage内のfiles/
ディレクトリにある特定のファイルへの参照を取得します。deleteObject(storageRef)
を使用して、上記で取得したファイルをFirebase Storageから削除します。
最終更新