Ошибка «тип« String »не является подтипом типа« File »из« value »»
Это моя первая страница, где я использую getX для передачи пути к файлу в виде String на следующую страницу. для загрузки в хранилище Firebase, а затем для получения URL-адреса загрузки, чтобы передать его в облачный хранилище Firebase, но он показывает указанную выше ошибку
imagePath = cropped.path;
print(imagePath);
pollImageController.setImage(imagePath);
Вот как я получаю строку на следующей странице (я могу правильно распечатать путь, но это не тип файла)
String imagepath = pollImageController.imageDisplay.value;
это код страницы для загрузки изображения с другой частью базы данных
.
.
static String pollPostId = Uuid().v4();
String finalimagePath = '$imagepath/imag_$pollPostId';
.
.
handleSubmit() async {
setState(() {
isUploading = true;
});
String mediaUrl = await uploadImage(finalimagePath);
cratePollPostInFireStore(
mediaUrl: mediaUrl,
caption: captionpass,
category: captionpass,
);
//ashrith clear the state here
//example to clear controller:
//categoryController.clear();
setState(() {
isUploading = false;
});
}
Future<String> uploadImage(imageFile) async {
firebase_storage.UploadTask uploadTask =
storageRef.child("post_$pollPostId.jpg").putFile(imageFile);
firebase_storage.TaskSnapshot storageSnap = await uploadTask;
String downloadurl = await storageSnap.ref.getDownloadURL();
return downloadurl;
}
cratePollPostInFireStore({String mediaUrl, String caption, String category}) {
pollPostRef.doc(_uid).collection("usersPollPosts").doc(pollPostId).set({
"pollPostid": pollPostId,
"ownerId": _uid,
"username": _username,
"mediaUrl": mediaUrl,
"caption": caption,
"category": category,
"timespanmp": timestamp,
"polls": {},
});
}
}
Насколько я понял, мы не можем передать строку в тип файла, поэтому я получаю эту ошибку.
Так что кто-нибудь знает решение. Это мне очень помогает. Я полностью застрял прямо сейчас.
Спасибо :)