[Video Summary] Ch. 8.15 Delete Data from Cloud Firestore using SwiftUI Snacktacular App

SwiftUI 6 Th02 2025

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

Click vào hình dưới để mở:
Ch. 8.15 Delete Data from Cloud Firestore using SwiftUI Snacktacular App

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:

  1. 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.
  2. Viết hàm deleteReview trong ReviewViewModel:

    • Hàm nhận vào tham số spotreview để xác định document cần xóa.
    • Sử dụng guard let để đảm bảo cả spot.idreview.id đều không phải là nil trước khi thực hiện xóa.
    • Sử dụng try await trong do 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ề true nếu xóa thành công, false nếu có lỗi.
  3. Gọi hàm deleteReview từ ReviewView:

    • Bọc lệnh gọi hàm deleteReview trong một Task do nó là hàm async.
    • Sử dụng await khi gọi hàm deleteReview.
    • Chỉ thực hiện dismiss view nếu việc xóa thành công.
  4. 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ị!

Tags