[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
photos
chứa cácfakePhoto
để hiển thị.
- Tạo struct
- Xây dựng giao diện:
- Sử dụng
ScrollView
với trục ngang (.horizontal
) để tạo scroll view ngang. - Trong
ScrollView
, dùngHStack
và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
fakePhoto
và mảngphotos
. - Thay bằng biến
photos
kiểu[Photo]
vàspot
kiểuSpot
để nhận dữ liệu từSpotDetailView
. - Thay đổi
previewProvider
để có thể truyền dữ liệuPhoto
vàSpot
và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ậtphotos
khi xem một spot cụ thể. - Thêm đoạn code vào action của nút save để cập nhật
photos
khi tạo một spot mới.
- Trong
- Thêm scroll view ảnh vào
SpotDetailView
:- Thêm
spotDetailPhotoScrollView
vàoSpotDetailView
, ngay dưới map và trên Hstack chứa rating. - Truyền
photos
vàspot
chospotDetailPhotoScrollView
.
- 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!