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

问题描述

我正在开发一个Flutter的Web应用程序,当我在调试模式(本地主机)上运行它时,它就像一个超级按钮,我的Firestore请求也有效,并且存储网址也一样,但是当我将其部署到Firebase Hosting时,我可以无法使用存储中的网址加载图片。这就是我得到的:

访问地址为 'https://firebasestorage.googleapis.com/v0/b/url-to-my-picture/?token=firestorage-key' 来源“ https://my-project.web.app”已被CORS阻止 策略:“访问控制允许来源”标头不存在 要求的资源。如果不透明的响应满足您的需求,请设置 请求的模式设置为“ 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本身。没有NodeJ,没有PHP

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

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

解决方法

通过google shell进行设置后,现在可以使用了!

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