[Video Summary] Ch. 8.7 Deleting data with CloudFirestore and SwiftUI, Snacktacular App (2024)
Mô tả nhanh
Video này hướng dẫn cách xóa dữ liệu (delete documents) từ Cloud Firestore sử dụng Swift và SwiftUI trong ứng dụng Snacktacular. Nội dung bao gồm việc sử dụng swipe action để xóa một mục trong danh sách, và cách tạo một hàm static để delete.
Video
Mô tả chi tiết
Video này hướng dẫn cách xóa dữ liệu (delete documents) từ Cloud Firestore sử dụng Swift và SwiftUI trong ứng dụng Snacktacular.

Các bước thực hiện chính:
-
Thêm Swipe Action vào List View:
- Sử dụng
.swipeActions(edge: .trailing)modifier sauNavigationLinkđể thêm action delete khi vuốt sang trái. - Bên trong
swipeActions, tạo mộtButtonvới label "Delete", role là.destructiveđể hiển thị màu đỏ cho button xóa. - Action của button sẽ gọi hàm delete.
- Sử dụng
-
Tạo hàm delete trên ViewModel:
- Thêm hàm
deleteSpotvàoSpotViewModel. - Hàm này nhận đầu vào là một đối tượng
Spot. - Sử dụng
guard letđể unwrapIDcủa spot, nếu không có ID thì in thông báo lỗi. - Bên trong
Task, sử dụngtry awaitđể gọi hàmdelete()trên Firestore document. - Bắt lỗi và in thông báo nếu có lỗi xảy ra trong quá trình xóa.
- Để gọi hàm
deleteSpotmà không cần khởi tạo class, ta cần khai báo hàm làstatic(cuối video tác giả cũng update hàm save thành static).
- Thêm hàm
-
Gọi hàm delete từ List View:
- Trong action của swipe button, gọi
SpotViewModel.deleteSpot(spot: spot)để thực hiện xóa.
- Trong action của swipe button, gọi
-
Chuyển hàm
saveSpotthành static:- Tương tự như
deleteSpot, thêmstaticvàofunc saveSpottrongSpotViewModel. - Thay đổi cách gọi hàm
saveSpottrongSpotDetailViewbằng cách gọi trực tiếp qua classSpotViewModel.saveSpot(spot: spot)mà không cần tạo instance củaSpotViewModelnữa, và loại bỏ luôn biến statespotVM
- Tương tự như
-
Sửa lỗi warning:
- Sửa lỗi warning liên quan đến string interpolation trong hàm catch của delete, thay vì dùng
spot.id, ta sẽ dùng biếnidđã được unwrap bằngguard let.
- Sửa lỗi warning liên quan đến string interpolation trong hàm catch của delete, thay vì dùng
Video kết thúc bằng việc review lại ứng dụng và cho thấy CRUD (Create, Read, Update, Delete) hoạt động tốt với dữ liệu trên Cloud Firestore.
Chúc bạn học tập hiệu quả!