uploadFile method

Future<String?> uploadFile()

Implementation

Future<String?> uploadFile() async {
  if (path != null && file != null) {
    try {
      var _downloadUrl = '';
      final _storage = FirebaseStorage.instance;
      final _ref = _storage.ref().child(path!);
      final _uploadTask = _ref.putFile(file!);

      _uploadTask.snapshotEvents.listen((event) {
        var _progress =
            event.bytesTransferred.toDouble() / event.totalBytes.toDouble();
        if (onProgressUpdate != null) onProgressUpdate!(_progress);
      });
      await _uploadTask.whenComplete(() => print('Upload Complete'));
      _downloadUrl = await _ref.getDownloadURL();

      return _downloadUrl;
    } catch (e) {
      print(e);
      print('Error!!!: Uploading image to firebase storage');
    }
  }

  return null;
}