带有 Firebase 托管的 Flutter web 无法从存储中加载图片

Posted

技术标签:

【中文标题】带有 Firebase 托管的 Flutter web 无法从存储中加载图片【英文标题】:Flutter web with Firebase Hosting can not load pictures from storage 【发布时间】:2020-12-07 02:23:17 【问题描述】:

我正在开发一个 Flutter Web 应用程序,当我在调试模式(本地主机)上运行它时,它就像一个魅力,我的 Firestore 请求和存储 URL 也可以工作,但是当我将它部署到 Firebase 托管时,我可以'不要使用存储中的 url 加载图片。这是我得到的:

访问获取 'https://firebasestorage.googleapis.com/v0/b/url-to-my-picture/?token=firestorage-key' 来自原点“https://my-project.web.app”已被 CORS 阻止 政策:没有“Access-Control-Allow-Origin”标头出现在 请求的资源。如果不透明的响应满足您的需求,请将 请求模式为“no-cors”以获取禁用 CORS 的资源。

我搜索了这个,我发现我需要在 firebase.json 文件上设置我的托管,这就是我在托管部分所做的:

  "hosting": 
    "public": "build/web",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      
        "source": "**",
        "destination": "/index.html"
      
    ],
    "headers": [
      
        "source": "**",
        "headers": [
          
            "key": "Access-Control-Allow-Origin",
            "value": "*"
          
        ]
      
    ]
  ,

但没有成功。请注意,我只使用 Flutter Web 和 Firebase 本身。没有 NodeJs,没有 php

编辑: 这是我加载图片的方式:

...
NetworkImage(
    pic.url,
),
...

【问题讨论】:

【参考方案1】:

通过 google shell 进行设置后,它现在可以工作了!

https://***.com/a/58613527/11231634

【讨论】:

以上是关于带有 Firebase 托管的 Flutter web 无法从存储中加载图片的主要内容,如果未能解决你的问题,请参考以下文章

是啥导致“权限被拒绝”-带有 FIREBASE 和 FLUTTER 的消息

Flutter Web 在 Firebase 托管中不起作用

尝试在托管 Web Flutter 应用程序的 Firebase 中部署

我的 Flutter web 在本地构建得很好,但在 firebase 托管中不起作用

如何更新在 Firebase 托管中部署的 Flutter Web 版本

Flutter Web 应用程序在部署到 Firebase 托管后返回空白页面