从Flutter中的Firebase存储中获取下载URL

Put*_*yah 6 dart firebase flutter firebase-storage

我正在探索Flutter,我发现在Flutter firebase_storage中有一个官方的Firebase存储插件 我有这样的存储引用:

final StorageReference ref = FirebaseStorage.instance.ref().child("default.png");
Run Code Online (Sandbox Code Playgroud)

但是没有办法从StorageReference获取下载URL.

小智 12

如果上述解决方案不起作用,请尝试以下操作:

Future<String> uploadImage(var imageFile ) async {
    StorageReference ref = storage.ref().child("/photo.jpg");
    StorageUploadTask uploadTask = ref.putFile(imageFile);

    var dowurl = await (await uploadTask.onComplete).ref.getDownloadURL();
    url = dowurl.toString();

    return url; 
}
Run Code Online (Sandbox Code Playgroud)

  • 上述方法现已弃用,请检查此答案:/sf/answers/4533507331/ (2认同)

Dan*_*anu 7

像这样使用网址:

printUrl() async {
    StorageReference ref = 
        FirebaseStorage.instance.ref().child("images/sky.jpg");
    String url = (await ref.getDownloadURL()).toString();
    print(url);
}
Run Code Online (Sandbox Code Playgroud)


siv*_*mar 6

我已经实现了一个方法来保存带有时间戳的图像并获得可下载的URL.

Future<String>photoOption() async {
    try {
        DateTime now = new DateTime.now();
        var datestamp = new DateFormat("yyyyMMdd'T'HHmmss");
        String currentdate = datestamp.format(now);
        File imageFile = await ImagePicker.pickImage();


        StorageReference ref = FirebaseStorage.instance
            .ref()
            .child("images")
            .child("$currentdate.jpg");
        StorageUploadTask uploadTask = ref.putFile(imageFile);

        Uri downloadUrl = (await uploadTask.future).downloadUrl;
        addUser.downloadablelink = downloadUrl.toString();

        downloadableUrl = downloadUrl.toString();

        print(downloadableUrl);

    } catch (error) {
        print(error);
    }

    return downloadableUrl;
}
Run Code Online (Sandbox Code Playgroud)

  • `put` 已被弃用。使用 `putFile` 。 (2认同)

Md *_*lam 5

在最新版本firebase_storage: ^5.0.1方法应如下所示:

Reference reference = FirebaseStorage.instance.ref().child("SupportChatImages").child(fileName);

    UploadTask uploadTask =  reference.putFile(imageFile);

    uploadTask.whenComplete(() async{

      try{
        imageUrl = await reference.getDownloadURL();
      }catch(onError){
        print("Error");
      }

      print(imageUrl);

    });
Run Code Online (Sandbox Code Playgroud)


小智 5

对于 firebase_storage:^10.0.1

这是获取上传图像的 URL 的代码..

uploadImagetFirebase(String imagePath) async {
 await FirebaseStorage.instance
  .ref(imagePath)
  .putFile(File(imagePath))
  .then((taskSnapshot) {
print("task done");

// download url when it is uploaded
if (taskSnapshot.state == TaskState.success) {
  FirebaseStorage.instance
      .ref(imagePath)
      .getDownloadURL()
      .then((url) {
    print("Here is the URL of Image $url");
    return url;
  }).catchError((onError) {
    print("Got Error $onError");
  });
}
});
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

6934 次

最近记录:

6 年,5 月 前