Firebase Storage 사용법!
ImagePicker package로 image를 가져오고
그 이미지를 File()에 넣어서 File 변수로 만들어준다. 중요!!
이미지를 업로드 할 때에는 reference가 필요하고
이미지를 가져올 때에는 URL로 가져올 수 있다.
이때도 reference가 필요하다.
reference는 가져올려고 하는 파일의 경로를 말한다.
File _image;
Future getImage() async {
final image = await ImagePicker().getImage(source: ImageSource.gallery);
setState(() {
_image = File(image.path);
});
}
/// basename으로 파일의 온전한 이름을 Get 할 수 있다.
///
/// 이미지 Storage에 업로드하기
Future<dynamic> uploadImage(File imageFile) async {
StorageReference reference = storage.ref().child("images").child(path.basename(imageFile.path));
return reference.putFile(imageFile).onComplete;
}
/// 이미지 가져오기
Future<String> getImageURL(String filename) async {
return await storage.ref().child('images').child(filename).getDownloadURL();
}
/// 이미지 삭제하기
///
/// 이미지를 업데이트할 때에는 기존의 이미지를 삭제하고 업로드 해줘야한다.
await storage.ref().child("images").child(widget.product.filename).delete();
Handling Task
Try Catch문을 사용해서 Error를 Handling 해주자!
Future<void> uploadFile(String filePath) async {
File file = File(filePath);
try {
await firebase_storage.FirebaseStorage.instance
.ref('uploads/file-to-upload.png')
.putFile(file);
} on firebase_core.FirebaseException catch (e) {
// e.g, e.code == 'canceled'
}
}
'Flutter > Firebase' 카테고리의 다른 글
[FIREBASE] 보안 규칙 설정 (0) | 2021.11.30 |
---|---|
[FIREBASE] IOS, Android Firebase ERROR 없이 한번에 연결하기 (0) | 2021.11.30 |
[Firebase] Firebase usage example (0) | 2021.11.19 |
[Firebase] Firebase property 정리 (0) | 2021.11.19 |
[Firebase] IOS 연결하기 (0) | 2021.11.10 |