这是我使用getX将文件路径作为字符串传递到下一页的第一页。用于上传到 Firebase 存储,然后获取下载 url 以将其传递给 firebase cloud firestore,但它显示上述错误
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": {},
});
}
}
据我了解,我们无法将字符串传递给文件类型,这就是我收到此错误的原因。
有谁知道解决方案。它对我有很大帮助。我现在完全陷入困境。
谢谢你 :)