Home > Back-end >  Unhandled Exception: PlatformException(download_error, Object does not exist at location., null, nul
Unhandled Exception: PlatformException(download_error, Object does not exist at location., null, nul

Time:03-16

I m trying to upload the image on firebase, using this code:

Future<String> uploadCourseImage(filePath, courseName) async{
  File file = File(filePath);
  var timestamp = Timestamp.now().millisecondsSinceEpoch;
  FirebaseStorage _storage = FirebaseStorage.instance;

  try{
    await _storage.ref().child('courseImage/${this.TeacherName}/$courseName$timestamp').putFile(file);
  }on Exception catch(e){
    print(e.hashCode);
  }

  String downloadURL = await _storage.ref().child('courseImage/${this.TeacherName}/$courseName$timestamp').getDownloadURL();
  this.courseURL =downloadURL;
  notifyListeners();
  return downloadURL;
}

But I get this error:

Unhandled Exception: PlatformException(download_error, Object does not exist at location., null, null), but my Object does exists at the location

CodePudding user response:

Using UploadTask class object helps in uploading the file I think.

Try this method for uploading image to Firebase Storage and extracting url after uploading is done.

 Future uploadImage(BuildContext context) async {
    FirebaseStorage storage = FirebaseStorage.instance;
    String? email = FirebaseAuth.instance.currentUser!.email!;
    Reference ref =
        storage.ref().child('users/${email   DateTime.now().toString()}/Profile Image: ${DateTime.now().toString()}');



    UploadTask uploadTask = ref.putFile(_image!);
    final TaskSnapshot downloadUrl = (await uploadTask);
    imageUrl = await downloadUrl.ref.getDownloadURL();

   

 
  
  }

CodePudding user response:

The below code worked fro me:

 //Create a reference to the location you want to upload to in firebase
StorageReference reference =
    storage.ref().child('courseImage/${this.TeacherName}/$courseName$timestamp');

//Upload the file to firebase
StorageUploadTask uploadTask = reference.putFile(image);

StorageTaskSnapshot taskSnapshot = await uploadTask.onComplete;

// Waits till the file is uploaded then stores the download url
String url = await taskSnapshot.ref.getDownloadURL();
  • Related