1

这是我使用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": {},
    });
  }
}

据我了解,我们无法将字符串传递给文件类型,这就是我收到此错误的原因。

有谁知道解决方案。它对我有很大帮助。我现在完全陷入困境。

谢谢你 :)

4

0 回答 0