[Video Summary] Ch. 8.15 Delete Data from Cloud Firestore using SwiftUI Snacktacular App
Mô tả nhanh
Video này hướng dẫn cách xóa dữ liệu (cụ thể là các review) từ Cloud Firestore trong ứng dụng Snacktacular sử dụng SwiftUI. Video tập trung vào việc xóa một document nằm trong collection, mà collection đó lại nằm trong một document khác, và document đó lại nằm trong một collection khác. Đồng thời, video cũng hướng dẫn cách xử lý lỗi và đảm bảo người dùng chỉ có thể xóa các review do chính họ tạo ra.
Video
Mô tả chi tiết
Video này hướng dẫn cách xóa dữ liệu (cụ thể là các review) từ Cloud Firestore trong ứng dụng Snacktacular sử dụng SwiftUI. Video tập trung vào việc xóa một document nằm trong collection, mà collection đó lại nằm trong một document khác, và document đó lại nằm trong một collection khác. Đồng thời, video cũng hướng dẫn cách xử lý lỗi và đảm bảo người dùng chỉ có thể xóa các review do chính họ tạo ra.
Các bước thực hiện chính bao gồm:
-
Chuẩn bị UI cho chức năng xóa:
- Thêm một nút "thùng rác" ở góc dưới bên phải của view review nếu review đó do người dùng hiện tại tạo.
- Ẩn nút "thùng rác" nếu review không phải của người dùng hiện tại hoặc nếu đang trong quá trình thêm review mới.
-
Viết hàm
deleteReviewtrongReviewViewModel:- Hàm nhận vào tham số
spotvàreviewđể xác định document cần xóa. - Sử dụng
guard letđể đảm bảo cảspot.idvàreview.idđều không phải làniltrước khi thực hiện xóa. - Sử dụng
try awaittrongdo catchđể thực hiện xóa bất đồng bộ và xử lý lỗi. - Đường dẫn tới document cần xóa có dạng:
db.collection("spots").document(spotID).collection("reviews").document(reviewID). - Trả về
truenếu xóa thành công,falsenếu có lỗi.
- Hàm nhận vào tham số
-
Gọi hàm
deleteReviewtừReviewView:- Bọc lệnh gọi hàm
deleteReviewtrong mộtTaskdo nó là hàmasync. - Sử dụng
awaitkhi gọi hàmdeleteReview. - Chỉ thực hiện dismiss view nếu việc xóa thành công.
- Bọc lệnh gọi hàm
-
Test ứng dụng:
- Kiểm tra nút "thùng rác" chỉ hiển thị khi người dùng xem review của chính mình.
- Xác nhận có thể xóa review thành công và review đó biến mất khỏi Cloud Firestore.
- Kiểm tra nút "thùng rác" không hiển thị ở các review của người dùng khác.
- Kiểm tra nút "thùng rác" không hiển thị khi đang tạo review mới.
Video cũng củng cố các khái niệm về:
- Tạo đường dẫn tới một document cụ thể trong Cloud Firestore.
- Sử dụng
guard letđể kiểm tra và tạo các biến non-optional. - Xử lý các hàm bất đồng bộ với
async await. - Sử dụng
try catchđể xử lý lỗi.
Chúc bạn có những trải nghiệm lập trình thú vị!