【问题标题】:How to create a Cloud Storage image URL in Flutter code?如何在 Flutter 代码中创建 Cloud Storage 图片 URL?
【发布时间】:2022-01-15 21:42:49
【问题描述】:

我在 Cloud Storage 的一个文件夹中存储了一个“图像”,每当新用户使用电子邮件和密码注册时,我想将其用作默认图像。创建帐户后,用户可以选择添加自己的图像,但我希望所有用户都从默认图像开始。 Flutter 根据 SO 上的不同问题/答案,无法读取 Cloud Storage 原生用于描述上传文件位置的 (gs)URL。如何创建 Flutter 可以读取的 url?

我的云存储 URL 是: gs://shopping-app.appspot.com/defaultUserImage/default_user_icon.jpg

提前感谢您的帮助。

【问题讨论】:

    标签: firebase flutter google-cloud-firestore flutter-layout


    【解决方案1】:

    如果您使用默认存储桶,您可以获得如下 URL:

    await FirebaseStorage.instance.ref('<file>').getDownloadURL();
    

    【讨论】:

    • 感谢您的帮助。我不得不清理其他代码,但您的解决方案非常完美。没有错误,我有我想要的确切行为。真的很感激。
    【解决方案2】:

    download URLs 上的 Cloud Storage 的 FlutterFire 文档准确地涵盖了您的要求。从那里:

    在许多用例中,您可能希望使用 Firebase 作为可扩展且经济高效的内容分发网络 (CDN) 来显示存储在应用程序中的存储分区中的图像。 Firebase 允许您检索可以使用的长期下载 URL。要请求下载 URL,请在参考上调用 getDownloadURL method

    Future<void> downloadURLExample() async {
      String downloadURL = await firebase_storage.FirebaseStorage.instance
         .ref('users/123/avatar.jpg')
          .getDownloadURL();
    
      // Within your widgets:
      // Image.network(downloadURL);
    }
    

    您可以通过将FirebaseStorage.instance.refFromURL() method 传递给您拥有的gs:// URL 来获取StorageReference

    【讨论】:

    • 我实际上并没有查看该特定文档。感谢您的链接和代码帮助。我将通读链接中的文档并在几个地方更改我的代码,因为我知道该怎么做。
    猜你喜欢
    • 2020-06-20
    • 1970-01-01
    • 2015-01-15
    • 2015-08-30
    • 1970-01-01
    • 2018-05-23
    • 2020-01-17
    • 1970-01-01
    相关资源
    最近更新 更多