[Video Summary] Ch. 8.19 Loading Images from Firebase Storage
Mô tả nhanh
Video này hướng dẫn cách tạo một scroll view ngang để hiển thị các ảnh đã lưu trữ trong Firebase Storage, sử dụng URL ảnh đã lưu trong Cloud Firestore.
Video
Mô tả chi tiết
Video này hướng dẫn cách tạo một scroll view ngang để hiển thị các ảnh đã lưu trữ trong Firebase Storage, sử dụng URL ảnh đã lưu trong Cloud Firestore.
Các bước thực hiện:
- Tạo View mới:
- Tạo một file SwiftUI View mới tên
spotDetailPhotoScrollViewđể chứa scroll view ảnh, tách biệt khỏispotDetailViewđể giảm độ phức tạp.
- Tạo một file SwiftUI View mới tên
- Dữ liệu giả:
- Tạo struct
fakePhotođể làm dữ liệu giả, chứa URL ảnh để test trước khi load từ Firebase. - Tạo mảng
photoschứa cácfakePhotođể hiển thị.
- Tạo struct
- Xây dựng giao diện:
- Sử dụng
ScrollViewvới trục ngang (.horizontal) để tạo scroll view ngang. - Trong
ScrollView, dùngHStackvàForEachđể duyệt mảngphotos. - Sử dụng
AsyncImageđể load ảnh từ URL, và thiết lập frame, scale và clip để hiển thị ảnh vuông 80x80. - Thêm
ProgressViewđể hiển thị khi ảnh đang load. - Thêm một số modifier để điều chỉnh khoảng cách, padding cho vừa ý.
- Sử dụng
- Thay thế dữ liệu giả bằng dữ liệu thật:
- Bỏ comment struct
fakePhotovà mảngphotos. - Thay bằng biến
photoskiểu[Photo]vàspotkiểuSpotđể nhận dữ liệu từSpotDetailView. - Thay đổi
previewProviderđể có thể truyền dữ liệuPhotovàSpotvào preview.
- Bỏ comment struct
- Kết nối với Firebase:
- Trong
SpotDetailView, sử dụng@FirestoreQueryđể lấy dữ liệu ảnh từ collection "photos" liên quan đến một "spot" đang xem. - Thêm đoạn code vào
onAppearđể cập nhậtphotoskhi xem một spot cụ thể. - Thêm đoạn code vào action của nút save để cập nhật
photoskhi tạo một spot mới.
- Trong
- Thêm scroll view ảnh vào
SpotDetailView:- Thêm
spotDetailPhotoScrollViewvàoSpotDetailView, ngay dưới map và trên Hstack chứa rating. - Truyền
photosvàspotchospotDetailPhotoScrollView.
- Thêm
- Kiểm tra:
- Build và run app để thấy scroll view ảnh hoạt động trên các spot khác nhau.
- Thêm ảnh vào các spot khác nhau để kiểm tra khả năng scroll.
<Lời chúc>
Chúc bạn thực hành thành công và tiếp tục khám phá những điều thú vị trong lập trình iOS/macOS với Swift và SwiftUI!
