[Video Summary] Ch. 8.10 Loading & Displaying Images from Firebase Cloud Storage in a SwiftUI ScrollView (2024)
Mô tả nhanh
Video này hướng dẫn cách tải và hiển thị hình ảnh từ Firebase Cloud Storage trong một ScrollView SwiftUI, sử dụng URL đã lưu trong Cloud Firestore. Video cũng cung cấp cách tạo dữ liệu mock cho preview, khắc phục các lỗi preview và đọc dữ liệu thực từ Firebase.
Video
Mô tả chi tiết
Video này hướng dẫn cách tải và hiển thị hình ảnh từ Firebase Cloud Storage trong một ScrollView SwiftUI, sử dụng URL đã lưu trong Cloud Firestore. Cụ thể:
- Kiểm tra dữ liệu trên Firebase: Video bắt đầu bằng việc kiểm tra các hình ảnh đã được lưu trữ trên Firebase Cloud Storage và URL của chúng trong Cloud Firestore. Một hình ảnh mới được thêm vào để đảm bảo mọi thứ hoạt động đúng.
- Sử dụng Async Image: Các URL được sử dụng để tải hình ảnh bằng SwiftUI
AsyncImage, tương tự như cách đã dùng trong dự án Pokémon trước đây. - Thay đổi Photo View:
- Thêm
TextFieldđể nhập mô tả (description) cho ảnh trongPhotoView. - Ẩn/hiện
PickertrongPhotoViewđể xem UI bên dưới.
- Thêm
- Tạo Mock Data:
- Tạo extension cho class
Photođể thêm static variablepreview, chứa dữ liệu mock. - Thêm initializer cho class
Photo, giúp tạo instance mới với các thuộc tính. - Nhập một URL hình ảnh từ Wikipedia để làm dữ liệu mock.
- Tạo extension cho class
- Tạo Horizontal ScrollView:
- Sử dụng
ScrollViewvới thuộc tínhaxesđược đặt là.horizontalđể tạo ScrollView ngang. - Sử dụng
HStackđể xếp các ảnh theo chiều ngang. - Sử dụng
ForEachđể lặp qua mảng dữ liệu mock (sau này là dữ liệu từ Firestore). - Sử dụng
AsyncImageđể hiển thị hình ảnh,ProgressViewkhi đang tải. - Sử dụng các thuộc tính
.resizable,.scaledToFill,.framevà.clippedđể tùy chỉnh hình ảnh hiển thị.
- Sử dụng
- Đọc dữ liệu từ Firebase:
- Import thư viện
FirebasevàFirebaseFirestore. - Sử dụng
@FirebaseQueryđể lấy dữ liệu từ Firebase Firestore. - Lưu ý: Không thể sử dụng trực tiếp
spot.IDtrongFirebaseQueryvì property initializer chạy trước khiselfcó sẵn. - Sử dụng
taskmodifier để cập nhật collection path khi view đã load xong. - Thay thế mảng dữ liệu mock trong
ForEachbằng mảngphotosđược lấy từ Firebase. - Xử lý lỗi preview bằng cách truyền tham số khi khởi tạo
Spotcho preview provider.
- Import thư viện
Video kết thúc bằng cách kiểm tra kết quả, thêm hình ảnh mới và hiển thị chúng trên giao diện, đồng thời giới thiệu cách khắc phục các sự cố trong preview.
Chúc bạn có những trải nghiệm học tập thú vị!
