🕊️

【SwiftUI】Firestore のデータで表示した List を削除する

2023/03/29に公開

はじめに

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 を削除できる
        }
    }
}

参考文献

https://stackoverflow.com/questions/68218222/how-do-i-delete-a-firestore-document-from-a-list-in-swiftui

Discussion