最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Flutter Firebase Storage Error: [firebase_storageunknown] cancelled during image upload (iOS emulator) - Stack Overflow

programmeradmin1浏览0评论

I am trying to upload an image to Firebase Storage in my Flutter app. Firebase initializes successfully, and the upload begins, but it fails midway with the error:

Error ::

[firebase_storage/unknown] cancelled
flutter: Firebase initialized successfully!
flutter: Anonymous sign-in successful!
flutter: State: TaskState.running
flutter: Transferred: 0 / 0
flutter: State: TaskState.running
flutter: Transferred: 150 / 2564108
flutter: State: TaskState.running
flutter: Transferred: 2097302 / 2564108
flutter: State: TaskState.running
flutter: Transferred: 2097302 / 2564108
flutter: Upload failed: cancelled
[ERROR:flutter/runtime/dart_vm_initializer(41)] Unhandled Exception: [firebase_storage/unknown] cancelled

 final ImagePicker _picker = ImagePicker();
 XFile? _image;
 UploadTask? uploadTask;
 bool _isUploading = false;
 String imgUrl = '';

// Function to pick an image from the gallery
Future<void> _pickImage() async {
  final pickedFile = await _picker.pickImage(source: ImageSource.gallery);
  if (pickedFile != null) {
    setState(() {
      _image = pickedFile;
    });
  }
}

// Function to upload image to Firebase Storage
Future<void> uploadFile(BuildContext context) async {
  if (_image == null) {
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text("Please select an image first!")),
    );
    return;
  }

  final file = File(_image!.path);
  if (!file.existsSync()) {
    debugPrint("File does not exist.");
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text("File does not exist!")),
    );
    return;
  }

  try {
    setState(() {
      _isUploading = true;
    });

    final ref = FirebaseStorage.instance
        .ref()
        .child('files/${basename(_image!.path)}');
    uploadTask = ref.putFile(file);

    uploadTask!.snapshotEvents.listen((event) {
      debugPrint("State: ${event.state}");
      debugPrint("Transferred: ${event.bytesTransferred} / ${event.totalBytes}");

      if (event.state == TaskState.canceled) {
        debugPrint("Upload was canceled by the user or system.");
        ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(content: Text("Upload canceled!")),
        );
      }
    });

    final snapshot = await uploadTask!.whenComplete(() {});
    final downloadUrl = await snapshot.ref.getDownloadURL();

    setState(() {
      _isUploading = false;
      imgUrl = downloadUrl;
    });

    debugPrint("Upload successful: $downloadUrl");
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text("Upload successful!")),
    );
  } on FirebaseException catch (e) {
    setState(() {
      _isUploading = false;
    });

    debugPrint("Upload failed: ${e.message}");
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text("Upload failed: ${e.message}")),
    );
  } catch (e) {
    setState(() {
      _isUploading = false;
    });

    debugPrint("An unknown error occurred: $e");
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text("An unknown error occurred: $e")),
    );
  }
}    

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论