Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

While trying to upload byteArray to the bucket in firebase storage, the file uploads to the storage but I cannot get the downloadUrl back from the file. I am getting the reference of bucket like this:

  Future<Reference> get storageRef async {
    final _bucketUrl = await bucketUrl;
    return FirebaseStorage.instanceFor(bucket: _bucketUrl).ref();
  }

And Uploading image like this:

 Future<String> uploadImageByteArray({
    @required Uint8List byteArray,
    String fileName,
  }) async {
    final name = fileName ?? DateTime.now().toIso8601String();
    final _ref = await storageRef;
    final _refUrl = _ref.child("images/$name.png");
    print(_refUrl.fullPath);
    final uploadTask = _refUrl.putData(byteArray);
    final snapshot = await uploadTask;
    return snapshot.ref.getDownloadURL();
  }

From above code I am getting this error:

Unhandled Exception: type 'NoSuchMethodError' is not a subtype of type 'Exception'.

It works if I get reference for the FirebaseStorage only and not the bucket like this:

 Future<Reference> get storageRef{
    return FirebaseStorage.instance.ref();
  }

I cannot implement without using bucket reference because there can be different bucket urls depending on the tenants. What am I doing wrong?

Edit => Recent Developments: I found out that it works if I get the downloadurl from the _refUrl itself. i.e:

String downloadUrl = _refUrl.getDownloadUrl();

It works but I can't help but wonder if it is correct implementation.

question from:https://stackoverflow.com/questions/65867036/flutter-cannot-get-download-url-firebase-storage

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
676 views
Welcome To Ask or Share your Answers For Others

Please log in or register to answer this question.

Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...