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

时间:2020-08-17 22:31:36

标签: firebase flutter firebase-hosting 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,
),
...

1 个答案:

答案 0 :(得分:1)

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

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