[Video Summary] Ch. 8.11 Creating Mock Data SwiftUI Previews When Using Cloud Firestore & Firebase Storage (2024)
Mô tả nhanh
Video này hướng dẫn cách tạo dữ liệu mock cho preview SwiftUI khi sử dụng Cloud Firestore và Firebase Storage. Đồng thời, video cũng hướng dẫn cách hiển thị dữ liệu mock này chỉ trong preview và dữ liệu thật từ Firestore khi ứng dụng chạy trên simulator hoặc thiết bị.
Video
Mô tả chi tiết
Video này hướng dẫn cách tạo dữ liệu mock cho preview SwiftUI khi sử dụng Cloud Firestore và Firebase Storage. Đồng thời, video cũng hướng dẫn cách hiển thị dữ liệu mock này chỉ trong preview và dữ liệu thật từ Firestore khi ứng dụng chạy trên simulator hoặc thiết bị.
Các bước thực hiện:
-
Tạo thuộc tính preview cho
Spotclass:- Mở rộng
Spotclass bằng cách thêm một extension. - Tạo một static property có tên
previewkiểuSpot. - Bên trong
preview, tạo một instancenewSpotcủaSpotvới các giá trị mock (id: "1", name: "Boston Public Market", address: "Boston, ma"). - Trả về
newSpottừpreview. - Sử dụng
Spot.previewtrongPreviewProvidercủaSpotDetailViewthay vì giá trị literal.
- Mở rộng
-
Thay đổi tên biến
photosthànhFSPhotos:- Đổi tên biến chứa dữ liệu Firestore từ
photosthànhFSPhotos. - Cập nhật tên biến trong
taskở nơi load dữ liệu từ Firestore.
- Đổi tên biến chứa dữ liệu Firestore từ
-
Tạo computed property
photos:- Tạo một computed property
photoskiểu[Photo]. - Sử dụng
ProcessInfo.processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1"để kiểm tra xem có đang chạy trong preview hay không. - Nếu đang trong preview, trả về array chứa các
photo.previewmock data (6 ảnh pizza từ Wikipedia). - Nếu không đang trong preview (đang chạy trong simulator hoặc app), trả về
FSPhotos(dữ liệu từ Firestore).
- Tạo một computed property
-
Sửa lỗi hiển thị tên người dùng
- Sửa lại initializer của class
Photođể lấy email của user đang đăng nhập thay vì chuỗi rỗng, dùngAuth.auth().currentUser?.email ?? "".
- Sửa lại initializer của class
Giải thích thêm:
- Việc sử dụng computed property
photosgiúp đảm bảo rằng dữ liệu sẽ tự động được cập nhật nếu có thay đổi từ Firestore. (Nếu ta dùng State variable thì sẽ không reactive) - Đoạn code kiểm tra
processInfo.processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1"là cách để biết liệu app đang hoạt động ở chế độ Preview hay không.
Video kết thúc bằng cách kiểm tra trên simulator, và sửa lỗi hiển thị tên người dùng trong chi tiết ảnh.
Chúc bạn học tập hiệu quả!
