728x90
문제 :
FireStorage에 사진을 업로드하고 그 사진을 firebase에 업로드하고 싶었는데
사진 업로드가 시간이 걸려서 AddPage에서 ListPage로 넘어가는 체감 시간이 너무 길었다.
과정 :
비동기식으로 파일업로드가 되어야 그 밑에 코드가 실행이 됐었는데
화면을 닫는 코드만 await 위에 작성했다.
Future uploadFile() async {
StorageReference storageReference = FirebaseStorage.instance
.ref()
.child('upload/${path.basename(_image.path)}');
StorageUploadTask uploadTask = storageReference.putFile(_image);
Navigator.pop(context);
await uploadTask.onComplete;
storageReference.getDownloadURL().then((fileURL) {
_addTodo(Todo(
_todoController.text,
Timestamp.fromMillisecondsSinceEpoch(
_selectedDate.millisecondsSinceEpoch),
fileURL,
used: Timestamp.fromMillisecondsSinceEpoch(
DateTime.now().toLocal().millisecondsSinceEpoch),
));
setState(() {
_selectedDate = null;
_uploadedFileURL = null;
_image = null;
});
});
}
결과 :
일단 등록하기 버튼을 누르면 AddPage를 벗어나 ListPage를 빠르게 보여주고
사진이 업로드되어 firebase에 추가되는대로 리스트에서 다시 보여준다.
하지만 사용자 입장에서 바로 추가가 안됐나? 싶을 수 있기 때문에 더 생각해봐야겠다.
'Flutter' 카테고리의 다른 글
Flutter - StreamBuilder 데이터 변경시 화면 다시 그리기 (0) | 2021.02.09 |
---|---|
Flutter - Firestore orderBy 조건 여러개 설정하기 (0) | 2021.02.09 |