🕊️
【SwiftUI】Firestore のデータで表示した List を削除する
はじめに
Firebase で取得した配列データをリスト表示して、そのリストを削除したかったが、削除したいデータを取得する方法がわからなかった。
ここでは、その解決方法を紹介する。
環境
- Xcode 14.2
- Swift 5.7.2
方法
- Firebase の items コレクションのドキュメントを削除する関数
private func deleteItem(at offsets: IndexSet) {
offsets.map { viewModel.items[$0] }.forEach{ item in
guard let docId = item.id else { return }
db.collection("items").document(docId).delete() { err in
if let err = err {
print("Error removing document: \(err)")
} else {
print("Document successfully removed!")
}
}
}
}
- List の表示
var body: some View {
NavigationView {
List {
ForEach(viewModel.items, id: \.self) { item in
VStack{
Text("")
}
}}
.onDelete(perform: deleteItem) // ここで List を削除できる
}
}
}
参考文献
Discussion