Skip to content

Commit 21674fe

Browse files
committed
prevent upload file type not an image
1 parent 80b91d5 commit 21674fe

File tree

2 files changed

+45
-19
lines changed

2 files changed

+45
-19
lines changed

lib/chat.dart

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,18 @@ class ChatScreenState extends State<ChatScreen> {
124124
StorageReference reference = FirebaseStorage.instance.ref().child(fileName);
125125
StorageUploadTask uploadTask = reference.putFile(imageFile);
126126
StorageTaskSnapshot storageTaskSnapshot = await uploadTask.onComplete;
127-
imageUrl = await storageTaskSnapshot.ref.getDownloadURL();
128-
setState(() {
129-
isLoading = false;
127+
storageTaskSnapshot.ref.getDownloadURL().then((downloadUrl) {
128+
imageUrl = downloadUrl;
129+
setState(() {
130+
isLoading = false;
131+
onSendMessage(imageUrl, 1);
132+
});
133+
}, onError: (err) {
134+
setState(() {
135+
isLoading = false;
136+
});
137+
Fluttertoast.showToast(msg: 'This file is not an image');
130138
});
131-
132-
onSendMessage(imageUrl, 1);
133139
}
134140

135141
void onSendMessage(String content, int type) {

lib/settings.dart

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -84,23 +84,43 @@ class SettingsScreenState extends State<SettingsScreen> {
8484
String fileName = id;
8585
StorageReference reference = FirebaseStorage.instance.ref().child(fileName);
8686
StorageUploadTask uploadTask = reference.putFile(avatarImageFile);
87-
StorageTaskSnapshot storageTaskSnapshot = await uploadTask.onComplete;
88-
photoUrl = await storageTaskSnapshot.ref.getDownloadURL();
89-
Firestore.instance
90-
.collection('users')
91-
.document(id)
92-
.updateData({'nickname': nickname, 'aboutMe': aboutMe, 'photoUrl': photoUrl}).then((data) async {
93-
await prefs.setString('photoUrl', photoUrl);
87+
StorageTaskSnapshot storageTaskSnapshot;
88+
uploadTask.onComplete.then((value) {
89+
if (value.error == null) {
90+
storageTaskSnapshot = value;
91+
storageTaskSnapshot.ref.getDownloadURL().then((downloadUrl) {
92+
photoUrl = downloadUrl;
93+
Firestore.instance
94+
.collection('users')
95+
.document(id)
96+
.updateData({'nickname': nickname, 'aboutMe': aboutMe, 'photoUrl': photoUrl}).then((data) async {
97+
await prefs.setString('photoUrl', photoUrl);
98+
setState(() {
99+
isLoading = false;
100+
});
101+
Fluttertoast.showToast(msg: "Upload success");
102+
}).catchError((err) {
103+
setState(() {
104+
isLoading = false;
105+
});
106+
Fluttertoast.showToast(msg: err.toString());
107+
});
108+
}, onError: (err) {
109+
setState(() {
110+
isLoading = false;
111+
});
112+
Fluttertoast.showToast(msg: 'This file is not an image');
113+
});
114+
} else {
115+
setState(() {
116+
isLoading = false;
117+
});
118+
Fluttertoast.showToast(msg: 'This file is not an image');
119+
}
120+
}, onError: (err) {
94121
setState(() {
95122
isLoading = false;
96123
});
97-
98-
Fluttertoast.showToast(msg: "Upload success");
99-
}).catchError((err) {
100-
setState(() {
101-
isLoading = false;
102-
});
103-
104124
Fluttertoast.showToast(msg: err.toString());
105125
});
106126
}

0 commit comments

Comments
 (0)